logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Aggiornamento delle risorse esistenti (PATCH)

04/09/2025, by Ivan

Questa pagina mostra esempi di richieste PATCH per il modulo JSON:API.

Abilitare l’operazione di aggiornamento

Visita /admin/config/services/jsonapi
e seleziona l’opzione "Accetta tutte le operazioni di creazione, lettura, aggiornamento ed eliminazione JSON:API".

jsonapi-accept-create-read-update-delete

Autenticazione

Di solito, per le richieste PATCH viene utilizzata una forma di autenticazione. Gli esempi seguenti utilizzano tutti l’Autenticazione di Base. Abilita il modulo HTTP Basic Authentication, imposta il permesso per l’utente (e il ruolo) dell’API e aggiungi il nome utente e la password codificati nell’intestazione della richiesta 'Authorization'.

L’intestazione di esempio in questa pagina richiede un utente Drupal 'api' con password 'api'. Questo utente deve avere il permesso di aggiornare il contenuto richiesto.

Intestazioni

Le seguenti intestazioni sono obbligatorie in tutte le richieste PATCH per ottenere una corretta richiesta e risposta JSON:API.

  • Accept: application/vnd.api+json
  • Content-Type:application/vnd.api+json

L’intestazione seguente è necessaria affinché gli esempi funzionino:

  • Authorization:Basic VALUE

Puoi ottenere il valore VALUE sopra nelle tue applicazioni usando la riga di comando:

echo -n "USERNAME:PASSWORD" | base64 -w0

Usa il valore restituito dopo BASIC. In questo esempio, le credenziali api:api restituiscono YXBpOmFwaQ==, quindi l’intestazione sarà:

Authorization:Basic YXBpOmFwaQ==

Richiesta PATCH di base

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

Corpo della richiesta

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Il mio titolo aggiornato"
    }
  }
}

L’"id" è obbligatorio. Aggiungi gli attributi che devono essere aggiornati.

Risposta

Risposta HTTP 200. Il corpo della risposta con la risposta JsonApi dell’entità aggiornata.

PATCH con più attributi

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

Corpo della richiesta

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Il mio titolo aggiornato",
      "body": {
        "value": "Testo del corpo aggiornato",
        "format": "plain_text",
        "summary": "Sommario aggiornato"
      }
    },
    "relationships": {
      "uid": {
        "data": {
          "type": "user--user",
          "id": "{{user_uuid}}"
        }
      }
    }
  }
}

Risposta

Risposta HTTP 200. Il corpo della risposta con corpo, sommario e autore aggiornati nell’entità.

PATCH per rimuovere una relazione

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Il mio titolo aggiornato",
      "body": {
        "value": "Testo del corpo aggiornato",
        "format": "plain_text",
        "summary": "Sommario aggiornato"
      }
    },
    "relationships": {
      "my_entity_reference_field": {
        "data": {},
      }
    }
  }
}

Risposta

Risposta HTTP 200. Il corpo della risposta con il corpo e il sommario aggiornati e il riferimento all’entità rimosso.

Articolo da Documentazione di Drupal.