Помимо того, что сказал @Konstantin Petrov, я бы также упомянул, что встроенная аутентификация с помощью graphdbjs - это функция, которая все еще находится в стадии разработки. Вы можете следить за PR . Также будут добавлены примеры. До тех пор это можно обойти, выполнив запрос на вход в систему и используя токен авторизации, возвращенный с ответом, чтобы создать экземпляр RDFRepositoryClient, настроенный с заголовком авторизации и токеном. Пример для этого приведен ниже.
const {RepositoryClientConfig, RDFRepositoryClient} = require('graphdb').repository;
const {RDFMimeType} = require('graphdb').http;
const {SparqlJsonResultParser} = require('graphdb').parser;
const {GetQueryPayload, QueryType} = require('graphdb').query;
const axios = require('axios');
axios.post('http://localhost:7200/rest/login/admin', null, {
headers: {
'X-GraphDB-Password': 'root'
}
}).then(function(token) {
const readTimeout = 30000;
const writeTimeout = 30000;
const repositoryClientConfig = new RepositoryClientConfig(['http://localhost:7200/repositories/testrepo'], {
'authorization': token.headers.authorization
}, '', readTimeout, writeTimeout);
const repositoryClient = new RDFRepositoryClient(repositoryClientConfig);
repositoryClient.registerParser(new SparqlJsonResultParser());
const payload = new GetQueryPayload()
.setQuery('select * where {?s ?p ?o}')
.setQueryType(QueryType.SELECT)
.setResponseType(RDFMimeType.SPARQL_RESULTS_JSON)
.setLimit(100);
return repositoryClient.query(payload);
})
.then(function(stream) {
// here is the query response stream
})
.catch(function(error) {
console.log('error', error);
});