REST API Beispiele für POST, PUT & PATCH

Hier findest du Beispiele für Aufrufe eines REST APIs mit POST, PUT und PATCH. Als Beispiel für die Anfragen und Antworten dient unser Fruit Shop Beispielservice.

1. Anlegen einer Ressource mit POST

Mit einer POST Anfrage an die Container Ressource:

https://api.predic8.de/shop/products/

kannst du eine neue Produkt-Ressource anlegen. Das folgende Code Beispiel zeigt das HTTP Protokoll für den Aufruf. Die Daten für die neu anzulegende Ressource wird im Body der HTTP Anfrage übertragen.

POST /shop/products/ HTTP/1.1 Host: api.predic8.de Content-Type: application/json { "name": "Wildberries", "price": 4.99, "category_url": "/shop/categories/Fruits", "vendor_url": "/shop/vendors/672" }

Ein Status Code von 201 Created in der Antwort unten informiert den Client über die erfolgreiche Ausführung des Requestes:

HTTP/1.1 201 Created Content-Type: application/json Location: https://api.predic8.de/shop/products/140

Im location Header der Response findest du die URI der neu angelegten Ressource. Mit einem GET Aufruf an diese Adresse kannst du eine Repräsentation des neuen Produktes abrufen.

1.1. Curl Aufruf

Falls du curl installiert hast kannst du einfach den Code unten in die Eingabeaufforderung kopieren und selbst mit POST ein Produkt anlegen:

curl -X POST --header 'Content-Type: application/json' -d '{ "name": "Wildberries", "price": 4.99,
      "category_url": "/shop/categories/Fruits",
      "vendor_url": "/shop/vendors/672"
}' 'https://api.predic8.de/shop/products/'

Noch besser kannst du POST und PUT Anfragen mit den Werkzeugen Insomnia oder Postman absetzen.

2. Verändern einer Ressource mit PUT

Mit PUT wird für gewöhnlich eine Ressource mit der Represäntation im Request überschrieben.

PUT /shop/products/11 HTTP/1.1 Host: api.predic8.de Content-Type: application/json { "name": "Red Grapes", "price": 1.79, "category_url": "/shop/categories/Fruits", "vendor_url": "/shop/vendors/501" }

Bei Erfolg antwortet der Server mit dem Status Code 200 OK.

HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8

2.1. Curl Aufruf

curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{
      "name": "Red Grapes",
      "price": 1.79,
      "category_url": "/shop/categories/Fruits",
      "vendor_url": "/shop/vendors/501"
}' 'https://api.predic8.de/shop/products/140'

3. Verändern einer Ressource mit PATCH

Mit der HTTP Methode PATCH können einzelne Eigenschaften einer Ressource gezielt manipuliert werden. Im Beispiel unten enthält der Request einen neuen Wert für die Eigenschaft price.

PATCH /shop/products/70 HTTP/1.1 Host: api.predic8.de Content-Type: application/json { "price": 1.99 }

Der Body der Response enthält die Repräsentation der geänderten Ressource mit dem neuen Preis.

HTTP/1.1 200 OK Cache-Control: no-cache Content-Type: application/json; charset=utf-8 { "name": "Pears", "price": 1.99, "photo_url": "/shop/products/70/photo", "category_url": "/shop/categories/Fruits", "vendor_url": "/shop/vendors/501" }

3.1. Curl Aufruf

curl -X PATCH --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{
      "price": 1.99
}' 'https://api.predic8.de:443/shop/products/70'

4. Löschen einer Ressource mit DELETE

Mit der DELETE Methode können Ressourcen wieder gelöscht werden.

DELETE /shop/products/142 HTTP/1.1 Host: api.predic8.de

Das erfolgreiche Löschen teilt der Server mit einem Status Code 200 OK an den Client mit.

HTTP/1.1 200 OK

4.1. Curl Aufruf

curl -X DELETE https://api.predic8.de:443/shop/products/199