Գոյություն ունեցող ռեսուրսների թարմացում (PATCH)
Այս էջում ներկայացված են PATCH հարցումների օրինակներ JSON:API մոդուլի համար։
Թարմացման գործողության ակտիվացում
Անցեք /admin/config/services/jsonapi
և ընտրեք "Accept all JSON:API create, read, update, and delete operations." տարբերակը։
Ավտենտիֆիկացում
Սովորաբար PATCH հարցումների համար պահանջվում է ավտենտիֆիկացման որևէ ձև։ Ստորև ներկայացված բոլոր օրինակներում օգտագործվում է Basic Authentication։ Միացրեք HTTP Basic Authentication մոդուլը, տվեք օգտվողին (և դերին) համապատասխան թույլտվություններ և 'Authorization' հեդերում ավելացրեք base64-ով կոդավորված օգտվողի անունը և գաղտնաբառը։
Այս էջի օրինակային հեդերում օգտագործվում է 'api' անունով և 'api' գաղտնաբառով Drupal օգտվող։ Այս օգտվողը պետք է ունենա խնդրված բովանդակությունը թարմացնելու իրավունք։
Հեդերներ
Բոլոր PATCH հարցումների համար պարտադիր են հետևյալ հեդերները՝ ճիշտ JSON:API հարցում և պատասխան ստանալու համար․
- Accept: application/vnd.api+json
- Content-Type: application/vnd.api+json
Այս օրինակները աշխատելու համար անհրաժեշտ է նաև հետևյալ հեդերը․
- Authorization: Basic VALUE
Այս արժեքը կարող եք ստանալ ձեր հավելվածներում հետևյալ հրամանով․
echo -n "USERNAME:PASSWORD" | base64 -w0
Վերադարձված արժեքը օգտագործեք BASIC-ից հետո։ Այս օրինակում api:api վավերացումից կստացվի YXBpOmFwaQ==, հետևաբար հեդերը կլինի․
Authorization: Basic YXBpOmFwaQ==
Հիմնական PATCH հարցում
Հասցե՝ http://example.com/jsonapi/node/article/{{article_uuid}}
Հարցման մարմին
{
"data": {
"type": "node--article",
"id": "{{article_uuid}}",
"attributes": {
"title": "My updated title"
}
}
}
"id"-ն պարտադիր է։ Ավելացրեք միայն այն հատկությունները (attributes), որոնք պետք է թարմացվեն։
Պատասխան
HTTP 200 պատասխան։ Պատասխանի մարմնում՝ թարմացված էակի JsonApi պատասխանն է։
PATCH՝ ավելի շատ հատկանիշներով
Հասցե՝ http://example.com/jsonapi/node/article/{{article_uuid}}
Հարցման մարմին
{
"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}}"
}
}
}
}
}
Պատասխան
HTTP 200 պատասխան։ Պատասխանի մարմնում՝ թարմացված body, ամփոփում (summary) և հեղինակ (author) ունեցող էակի JsonApi պատասխան։
PATCH՝ կապը հեռացնելու համար
{
"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": {},
}
}
}
}
Պատասխան
HTTP 200 պատասխան։ Պատասխանի մարմնում՝ թարմացված body, ամփոփում, և հեռացված էական հղում (entity reference)։
Հոդվածը՝ Drupal Documentation։