Отправка запроса на обновление SPARQL в Graphdb из Angular - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь отправить ОБНОВЛЕНИЕ (вставка) в экземпляр Graphdb, начиная с АНГУЛЯРНОГО веб-приложения (машинопись).Поэтому мне нужно было бы создать HTTP-запрос GET, но я не могу понять, как правильно отформатировать этот http-запрос в АНГУЛЯРНОМ приложении.Большинство онлайн-учебников работают с файлами .JSON для получения / публикации данных, а не с графиками RDF.

Я надеялся сделать это с помощью 'curl' и каким-то образом запустить команду curl изнутри angular, но я даже не могузаставить команду curl работать внутри моей собственной консоли.Я следовал этому Guide и просматривал ответы на stackoverflow, пока не пришел к следующей команде для SPARQL UPDATE для graphDB:

curl -G -H "Accept:application/x-trig" 
-d update=INSERT+DATA+%7B%3Chttp%3A%2F%2Fexample%2F3aan%3E+dc%3Atitle+%22pullnaam%22%7D+
http://localhost:7200/repositories/myrepository/statements

Когда я выполняю эту команду, консоль возвращает все ресурсы /узлы внутри графика, но на самом деле не выполняет обновление внутри команды curl.

Любая помощь будет принята с благодарностью, и я заранее извиняюсь, если забыл добавить что-то важное.Я тестирую еще несколько вариантов команды curl и надеюсь вскоре отредактировать этот вопрос.

Заранее спасибо!

Редактировать: рабочая команда curl:

curl -X POST -G -H "Accept:application/x-trig" -d
update=INSERT+DATA+%7B%3Chttp%3A%2F%2Fexample%2F4aan%3E+dc%3Atitle+%22pullnaam%22%7D+ 
http://localhost:7200/repositories/myrepository/statements

Редактировать: рабочая команда POST внутри машинописного текста / угловая:

function(event){
const body = "update=INSERT+DATA+%7B%3Chttp%3A%2F%2Fexample%2Ftesteroo%3E+dc%3Atitle+%22pullnaam%22%7D+";
const headers = new HttpHeaders().set('Accept', 'application/x-trig').set('Content-Type','application/x-www-form-urlencoded');
let options = { headers:HttpHeaders};
var url = "http://128.199.58.129:7200/repositories/repo/statements";
return this.http.post(url,body,{headers:headers}).toPromise().then(function(response) { console.log(response.toString())});
}

1 Ответ

2 голосов
/ 22 марта 2019

Вы получаете ответные заявления, потому что делаете запрос GET к ресурсу /statements.Обновление SPARQL - это запрос POST.Вам необходимо добавить -X POST к вашему запросу curl.

...