From 080a8294ec0ddabd088b4b0982bbb85c86311331 Mon Sep 17 00:00:00 2001 From: Ruben Verborgh Date: Tue, 29 Jun 2021 16:32:25 +0100 Subject: [PATCH] docs: Move example requests to guides. --- README.md | 104 ------------------------------------- guides/example-requests.md | 95 +++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 104 deletions(-) create mode 100644 guides/example-requests.md diff --git a/README.md b/README.md index c7428beb3..5c2296e25 100644 --- a/README.md +++ b/README.md @@ -74,110 +74,6 @@ $ npm ci $ npm start [-- ARGS] ``` -## Interacting with the server -CSS is still under active development, and as such the easiest and fastest way -to understand what functionality is supported is to read the integration tests. -This section is only intended as a high level summary of what's supported. - -The server supports low-level interaction via HTTP methods, such as `GET`, -`PUT`, `HEAD`, ... - -Below, we provide several examples on how to interact with the server using -`curl`. - -### `POST`: Creating a new pod - -Create a pod using an external WebID for authentication: -```shell -curl -X POST -H "Content-Type: application/json" \ - -d '{"login": "timbl", "webId": "http://timbl.inrupt.net/profile/card#me"}' \ - http://localhost:3000/pods -``` - -### `PUT`: Creating resources for a given URL - -Create a plain text file: -```shell -curl -X PUT -H "Content-Type: text/plain" \ - -d "abc" \ - http://localhost:3000/myfile.txt -``` - -Create a turtle file: -```shell -curl -X PUT -H "Content-Type: text/turtle" \ - -d " ." \ - http://localhost:3000/myfile.ttl -``` - -### `POST`: Creating resources at a generated URL - -Create a plain text file: -```shell -curl -X POST -H "Content-Type: text/plain" \ - -d "abc" \ - http://localhost:3000/ -``` - -Create a turtle file: -```shell -curl -X POST -H "Content-Type: text/turtle" \ - -d " ." \ - http://localhost:3000/ -``` - -The response's `Location` header will contain the URL of the created resource. - -### `GET`: Retrieving resources - -Retrieve a plain text file: -```shell -curl -H "Accept: text/plain" \ - http://localhost:3000/myfile.txt -``` - -Retrieve a turtle file: -```shell -curl -H "Accept: text/turtle" \ - http://localhost:3000/myfile.ttl -``` - -Retrieve a turtle file in a different serialization: -```shell -curl -H "Accept: application/ld+json" \ - http://localhost:3000/myfile.ttl -``` - -### `DELETE`: Deleting resources - -```shell -curl -X DELETE http://localhost:3000/myfile.txt -``` - -### `PATCH`: Modifying resources - -Currently, only patches over RDF resources are supported using [SPARQL Update](https://www.w3.org/TR/sparql11-update/) -queries without `WHERE` clause. - -```shell -curl -X PATCH -H "Content-Type: application/sparql-update" \ - -d "INSERT DATA { }" \ - http://localhost:3000/myfile.ttl -``` - -### `HEAD`: Retrieve resources headers - -```shell -curl -I -H "Accept: text/plain" \ - http://localhost:3000/myfile.txt -``` - -### `OPTIONS`: Retrieve resources communication options - -```shell -curl -X OPTIONS -i http://localhost:3000/myfile.txt -``` - ## Run using Docker A Docker image is available to run the containerised Solid Community Server against your filesystem. diff --git a/guides/example-requests.md b/guides/example-requests.md new file mode 100644 index 000000000..bb379e76f --- /dev/null +++ b/guides/example-requests.md @@ -0,0 +1,95 @@ +## Interacting with the server + +### `POST`: Creating a new pod + +Create a pod using an external WebID for authentication: +```shell +curl -X POST -H "Content-Type: application/json" \ + -d '{"login": "timbl", "webId": "http://timbl.inrupt.net/profile/card#me"}' \ + http://localhost:3000/pods +``` + +### `PUT`: Creating resources for a given URL + +Create a plain text file: +```shell +curl -X PUT -H "Content-Type: text/plain" \ + -d "abc" \ + http://localhost:3000/myfile.txt +``` + +Create a turtle file: +```shell +curl -X PUT -H "Content-Type: text/turtle" \ + -d " ." \ + http://localhost:3000/myfile.ttl +``` + +### `POST`: Creating resources at a generated URL + +Create a plain text file: +```shell +curl -X POST -H "Content-Type: text/plain" \ + -d "abc" \ + http://localhost:3000/ +``` + +Create a turtle file: +```shell +curl -X POST -H "Content-Type: text/turtle" \ + -d " ." \ + http://localhost:3000/ +``` + +The response's `Location` header will contain the URL of the created resource. + +### `GET`: Retrieving resources + +Retrieve a plain text file: +```shell +curl -H "Accept: text/plain" \ + http://localhost:3000/myfile.txt +``` + +Retrieve a turtle file: +```shell +curl -H "Accept: text/turtle" \ + http://localhost:3000/myfile.ttl +``` + +Retrieve a turtle file in a different serialization: +```shell +curl -H "Accept: application/ld+json" \ + http://localhost:3000/myfile.ttl +``` + +### `DELETE`: Deleting resources + +```shell +curl -X DELETE http://localhost:3000/myfile.txt +``` + +### `PATCH`: Modifying resources + +Currently, only patches over RDF resources are supported using [SPARQL Update](https://www.w3.org/TR/sparql11-update/) +queries without `WHERE` clause. + +```shell +curl -X PATCH -H "Content-Type: application/sparql-update" \ + -d "INSERT DATA { }" \ + http://localhost:3000/myfile.ttl +``` + +### `HEAD`: Retrieve resources headers + +```shell +curl -I -H "Accept: text/plain" \ + http://localhost:3000/myfile.txt +``` + +### `OPTIONS`: Retrieve resources communication options + +```shell +curl -X OPTIONS -i http://localhost:3000/myfile.txt +``` +