从 Angular 向 Graphdb 发送 SPARQL 更新查询
Sending SPARQL update query to Graphdb from Angular
我正在尝试从 ANGULAR 网络应用程序(打字稿)开始向 Graphdb 实例发送更新(插入)。因此,我需要创建一个 HTTP GET 请求,但我不知道如何在 ANGULAR 应用程序中正确格式化该 http 请求。大多数在线教程使用 .JSON 文件到 get/post 数据,而不是 RDF 图。
我希望通过 'curl' 完成此操作并以某种方式从 angular 中启动 curl 命令,但我什至无法让 curl 命令在我自己的控制台中工作。我已经按照这个 Guide 并筛选了 Whosebug 的答案,直到我为 graphDB 找到以下 SPARQL UPDATE 命令:
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
当我执行此命令时,控制台 returns 全部 resources/nodes 在图形中,但实际上并没有在 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
编辑:typescript/angular 中的工作 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())});
}
您正在返回语句,因为您正在对 /statements
资源执行 GET 请求。 SPARQL 更新是一个 POST 请求。您需要将 -X POST
添加到您的 curl 请求中。
我正在尝试从 ANGULAR 网络应用程序(打字稿)开始向 Graphdb 实例发送更新(插入)。因此,我需要创建一个 HTTP GET 请求,但我不知道如何在 ANGULAR 应用程序中正确格式化该 http 请求。大多数在线教程使用 .JSON 文件到 get/post 数据,而不是 RDF 图。
我希望通过 'curl' 完成此操作并以某种方式从 angular 中启动 curl 命令,但我什至无法让 curl 命令在我自己的控制台中工作。我已经按照这个 Guide 并筛选了 Whosebug 的答案,直到我为 graphDB 找到以下 SPARQL UPDATE 命令:
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
当我执行此命令时,控制台 returns 全部 resources/nodes 在图形中,但实际上并没有在 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
编辑:typescript/angular 中的工作 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())});
}
您正在返回语句,因为您正在对 /statements
资源执行 GET 请求。 SPARQL 更新是一个 POST 请求。您需要将 -X POST
添加到您的 curl 请求中。