Skip to content
Carlos Martinez edited this page Apr 14, 2020 · 1 revision

This is a list grlc features:

  • Request parameter mappings into SPARQL: grlc is compliant with BASIL's convention on how to map GET/POST request parameters into SPARQL
  • Automatic, user customizable population of parameter values in swagger-ui's dropdown menus via SPARQL triple pattern querying
  • Parameter values as enumerations (i.e. closed lists of values that will fill a dropdown in the UI) can now also be specified in the query decorators to save endpoint requests (see this example)
  • Parameter default values can now also be indicated through decorators (see this example)
  • URL-based content negotiation: you can request for specific content types by attaching them to the operation request URL, e.g. http://localhost:8088/CEDAR-project/Queries/residenceStatus_all.csv will request for results in CSV
  • Pagination of API results, as per the pagination decorator and GitHub's API Pagination Traversal
  • Docker images in Docker Hub for easy deployment
  • Compatibility with Linked Data Fragments servers, RDF dumps, and HTML+RDFa files
  • grlc integrates now SPARQLTransformer, allowing the use of queries in JSON (see this example).
  • Generation of provenance in PROV of both the repo history (via Git2PROV) and grlc's activity additions
  • Commit-based API versioning that's coherent with the repo versioning with git hashes
  • SPARQL endpoint address can be set at the query level, repository level, and now also as a query parameter. This makes your APIs endpoint agnostic, and enables for generic and transposable queries!
  • CONSTRUCT queries are now mapped automatically to GET requests, accept parameters in the WHERE clause, and return content in text/turtle or application/ld+json
  • INSERT DATA queries are now mapped automatically to POST requests. Support is limited to queries with no WHERE clause, and parameters are always expected to be values for g (named graph where to insert the data) and data (with the triples to insert, in ntriples format). The INSERT query pattern is so far static, as defined in static.py. Only tested with Virtuoso.
Clone this wiki locally