Ažuriranje postojećih resursa (PATCH)
Ova stranica prikazuje primere PATCH zahteva za JSON:API modul.
Omogućavanje update (ažuriranje) operacije
Posetite /admin/config/services/jsonapi
i čekirajte opciju "Accept all JSON:API create, read, update, and delete operations." (Prihvati sve JSON:API operacije: kreiranje, čitanje, ažuriranje i brisanje).
Autentifikacija
Obično se za PATCH zahteve koristi neka vrsta autentifikacije. Primeri ispod koriste Basic Authentication. Omogućite modul HTTP Basic Authentication, podesite dozvole za API korisnika (i ulogu) i dodajte kodirano korisničko ime i lozinku u 'Authorization' zaglavlje zahteva.
Zaglavlje iz primera na ovoj stranici zahteva Drupal korisnika 'api' sa lozinkom 'api'. Ovaj korisnik mora imati dozvolu za ažuriranje traženog sadržaja.
Zaglavlja
Sledeća zaglavlja su obavezna za sve PATCH zahteve da bi JSON:API pravilno obradio zahtev i odgovor.
- Accept: application/vnd.api+json
- Content-Type:application/vnd.api+json
Sledeće zaglavlje je takođe potrebno da bi primeri radili:
- Authorization:Basic VALUE
Vrednost VALUE možete dobiti u vašim aplikacijama pomoću komandne linije:
echo -n "USERNAME:PASSWORD" | base64 -w0
Koristite dobijenu vrednost nakon reči BASIC. U ovom primeru, kredencijali api:api vraćaju YXBpOmFwaQ==, tako da zaglavlje izgleda ovako:
Authorization:Basic YXBpOmFwaQ==
Osnovni PATCH zahtev
URL: http://example.com/jsonapi/node/article/{{article_uuid}}
Telo zahteva
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "My updated title"
}
}
}
"id" je obavezan. Dodajte atribute koje želite da ažurirate.
Odgovor
HTTP 200 odgovor. Telo odgovora sadrži JsonApi odgovor ažurirane entiteta.
PATCH sa više atributa
URL: http://example.com/jsonapi/node/article/{{article_uuid}}
Telo zahteva
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "My updated title",
"body": {
"value": "Updated body text",
"format": "plain_text",
"summary": "Updated summary"
}
},
"relationships": {
"uid": {
"data": {
"type": "user--user",
"id": "{{user_uuid}}"
}
}
}
}
}
Odgovor
HTTP 200 odgovor. Telo odgovora sadrži ažurirani body, summary i autora ažurirane entiteta.
PATCH za uklanjanje relacije
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "My updated title",
"body": {
"value": "Updated body text",
"format": "plain_text",
"summary": "Updated summary"
}
},
"relationships": {
"my_entity_reference_field": {
"data": {},
}
}
}
}
Odgovor
HTTP 200 odgovor. Telo odgovora sadrži ažurirani body, summary i uklonjenu entity referencu.
Članak sa Drupal dokumentacije.