This middleware forwards SPARQL queries to a SPARQL endpoint. It supports GET and POST (direct and URL-encoded) query requests and basic authentication.
The module exports a function to build a middleware. The function must be called with a single options object. The following options are supported:
endpointUrl
: The URL of the SPARQL endpointauthentication
: Credentials for basic authentication (object withuser
andpassword
property)queryOperation
: The query operation which will be used to access the SPARQL endpoint (default:postQueryDirect
)fetchOptions
: an object that will be merged (and potentially override) with node-fetch options used for the request from the proxy to the SPARQL endpoint. It can be used to override fetch headers:fetchOptions.headers
timeout
: configure a timeout in milliseconds (default value:20000
)cache
: configure the cache with the following fields:url
: connection string for the Redis instance (redis://…
orrediss://…
)ttl
: the time a value should be kept in the cache in seconds (default value:3600
, which is one hour)clearAtStartup
: set totrue
to remove all entries in the cache at the start of the proxy (default:false
)disabled
: set totrue
to disable the cache (default:false
)prefix
: set a custom prefix for all entries in Redis (default:default
)
// load the module
const sparqlProxy = require('@zazuko/sparql-proxy')
// create a middleware instance and add it to the routing
app.use(sparqlProxy({
endpointUrl: 'https://dbpedia.org/sparql'
})
This package uses debug
, you can get debug logging via: DEBUG=sparql-proxy
.
Since Trifid makes heavy use of this package, using DEBUG=trifid:*
also enables
logging in this package.