Aktualisierung der vorhandenen Ressourcen (PATCH)
Diese Seite zeigt Beispiele für PATCH-Anfragen für das JSON:API-Modul.
Update-Operation aktivieren
Gehe zu /admin/config/services/jsonapi
und aktiviere die Option „Alle JSON:API-Operationen zum Erstellen, Lesen, Aktualisieren und Löschen akzeptieren“.
Authentifizierung
Typischerweise wird für PATCH-Anfragen eine Form der Authentifizierung verwendet. Die unten stehenden Beispiele verwenden alle Basic Authentication. Aktiviere das HTTP Basic Authentication-Modul, setze die Berechtigung für den API-Benutzer (und dessen Rolle) und trage den kodierten Benutzernamen und das Passwort in den 'Authorization'-Header der Anfrage ein.
Im Beispiel-Header auf dieser Seite wird ein Drupal-Benutzer „api“ mit dem Passwort „api“ vorausgesetzt. Dieser Benutzer muss die Berechtigung haben, die angeforderten Inhalte zu aktualisieren.
Header
Die folgenden Header sind erforderlich für alle PATCH-Anfragen, um eine korrekte JSON:API-Anfrage und Antwort zu erhalten.
- Accept: application/vnd.api+json
- Content-Type: application/vnd.api+json
Folgender Header ist notwendig, damit die Beispiele funktionieren:
- Authorization: Basic VALUE
Diesen VALUE erhältst du in deiner Anwendung mit folgendem Kommandozeilen-Befehl:
echo -n "BENUTZERNAME:PASSWORT" | base64 -w0
Nutze den oben ausgegebenen Wert nach BASIC. In diesem Beispiel geben die Zugangsdaten api:api den Wert YXBpOmFwaQ== zurück, der Header sieht dann so aus:
Authorization: Basic YXBpOmFwaQ==
Einfache PATCH-Anfrage
URL: http://example.com/jsonapi/node/article/{{article_uuid}}
Request-Body
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "Mein aktualisierter Titel"
}
}
}
Die „id“ ist erforderlich. Füge die Attribute hinzu, die aktualisiert werden sollen.
Antwort
HTTP-200-Antwort. Der Antwort-Body enthält die JsonApi-Antwort der aktualisierten Entität.
PATCH mit weiteren Attributen
URL: http://example.com/jsonapi/node/article/{{article_uuid}}
Request-Body
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "Mein aktualisierter Titel",
"body": {
"value": "Aktualisierter Body-Text",
"format": "plain_text",
"summary": "Aktualisierte Zusammenfassung"
}
},
"relationships": {
"uid": {
"data": {
"type": "user--user",
"id": "{{user_uuid}}"
}
}
}
}
}
Antwort
HTTP-200-Antwort. Der Antwort-Body enthält Body, Zusammenfassung und Autor der aktualisierten Entität.
PATCH, um eine Beziehung zu entfernen
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "Mein aktualisierter Titel",
"body": {
"value": "Aktualisierter Body-Text",
"format": "plain_text",
"summary": "Aktualisierte Zusammenfassung"
}
},
"relationships": {
"my_entity_reference_field": {
"data": {}
}
}
}
}
Antwort
HTTP-200-Antwort. Der Antwort-Body enthält den aktualisierten Body, die Zusammenfassung und die entfernte Entitätsreferenz.
Artikel von Drupal Documentation.