[ https://issues.apache.org/jira/browse/JENA-738?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne updated JENA-738: ------------------------------- Issue Type: Bug (was: Improvement) > HTTP PUT to GSP endpoint should replace existing content? > --------------------------------------------------------- > > Key: JENA-738 > URL: https://issues.apache.org/jira/browse/JENA-738 > Project: Apache Jena > Issue Type: Bug > Components: Fuseki > Reporter: Ian Dickinson > Labels: fuseki2 > > Partly a question, and partly a suggestion for improvement: should HTTP PUT > to the /data endpoint replace existing content in the graph? I'd like to > suggest that it does, for the following reasons: > * we already have POST to /data to add new content > * it seems more consistent with the HTTP spec > * it would support the use-case of 'get the current graph contents, edit it, > put it back' > Here's a test case: > {noformat} > ian@ian-desktop $ curl http://localhost:3030/foo/data > { > } > [~/workspace/jena-fuseki2] > ian@ian-desktop $ curl -XPUT -v -d '<http://example/foo> <http://example/p> > <http://example/a>.' -H 'Content-Type: text/turtle' > http://localhost:3030/foo/data > * Hostname was NOT found in DNS cache > * Trying 127.0.0.1... > * Connected to localhost (127.0.0.1) port 3030 (#0) > > PUT /foo/data HTTP/1.1 > > User-Agent: curl/7.35.0 > > Host: localhost:3030 > > Accept: */* > > Content-Type: text/turtle > > Content-Length: 59 > > > * upload completely sent off: 59 out of 59 bytes > < HTTP/1.1 200 OK > < Fuseki-Request-ID: 235 > < Access-Control-Allow-Origin: * > * Server Fuseki (2.0.0.M2-SNAPSHOT) is not blacklisted > < Server: Fuseki (2.0.0.M2-SNAPSHOT) > < Content-Type: application/json > < Transfer-Encoding: chunked > < > { > "count" : 1 , > "quadCount" : 0 , > "tripleCount" : 1 > } > * Connection #0 to host localhost left intact > [~/workspace/jena-fuseki2] > ian@ian-desktop $ curl http://localhost:3030/foo/data > { <http://example/foo> > <http://example/p> <http://example/a> . > } > [~/workspace/jena-fuseki2] > ian@ian-desktop $ curl -XPUT -v -d '<http://example/foo> <http://example/p> > <http://example/b>.' -H 'Content-Type: text/turtle' > http://localhost:3030/foo/data > * Hostname was NOT found in DNS cache > * Trying 127.0.0.1... > * Connected to localhost (127.0.0.1) port 3030 (#0) > > PUT /foo/data HTTP/1.1 > > User-Agent: curl/7.35.0 > > Host: localhost:3030 > > Accept: */* > > Content-Type: text/turtle > > Content-Length: 59 > > > * upload completely sent off: 59 out of 59 bytes > < HTTP/1.1 200 OK > < Fuseki-Request-ID: 237 > < Access-Control-Allow-Origin: * > * Server Fuseki (2.0.0.M2-SNAPSHOT) is not blacklisted > < Server: Fuseki (2.0.0.M2-SNAPSHOT) > < Content-Type: application/json > < Transfer-Encoding: chunked > < > { > "count" : 1 , > "quadCount" : 0 , > "tripleCount" : 1 > } > * Connection #0 to host localhost left intact > [~/workspace/jena-fuseki2] > ian@ian-desktop $ curl http://localhost:3030/foo/data > { <http://example/foo> > <http://example/p> <http://example/b> , <http://example/a> . > } > {noformat} > What I am suggesting is that the final GET returns a graph of one triple: > :foo \:p :b -- This message was sent by Atlassian JIRA (v6.2#6252)