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

Mise à jour des ressources existantes (PATCH)

21/06/2025, by Ivan

Cette page montre des exemples de requêtes PATCH pour le module JSON:API.

Activation de l’opération de mise à jour

Rendez-vous sur /admin/config/services/jsonapi
et cochez l’option « Accepter toutes les opérations JSON:API de création, lecture, mise à jour et suppression. »

jsonapi-accept-create-read-update-delete

Authentification

Habituellement, une forme d’authentification est utilisée pour les requêtes PATCH. Les exemples ci-dessous utilisent tous l’authentification basique (Basic Authentication). Activez le module HTTP Basic Authentication, attribuez la permission à l’utilisateur API (et au rôle), puis ajoutez le nom d’utilisateur et le mot de passe encodés dans l’en-tête 'Authorization' de la requête.

L’exemple d’en-tête sur cette page nécessite un utilisateur Drupal nommé « api » avec le mot de passe « api ». Cet utilisateur doit avoir la permission de modifier le contenu demandé.

En-têtes

Les en-têtes suivants sont obligatoires sur toutes les requêtes PATCH pour obtenir une requête et une réponse JSON:API correctes :

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

L’en-tête suivant est nécessaire pour que les exemples fonctionnent :

  • Authorization: Basic VALEUR

Vous pouvez obtenir la VALEUR ci-dessus dans vos applications avec la ligne de commande :

echo -n "NOM_UTILISATEUR:MOT_DE_PASSE" | base64 -w0

Utilisez la valeur retournée après BASIC. Dans cet exemple, les identifiants api:api renvoient YXBpOmFwaQ==, donc l’en-tête sera :

Authorization: Basic YXBpOmFwaQ==

Requête PATCH basique

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

Corps de la requête

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Mon titre mis à jour"
    }
  }
}

L’"id" est obligatoire. Ajoutez les attributs à mettre à jour.

Réponse

Réponse HTTP 200. Le corps de la réponse contient la réponse JsonAPI de l’entité mise à jour.

PATCH avec plus d’attributs

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

Corps de la requête

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Mon titre mis à jour",
      "body": {
        "value": "Texte du corps mis à jour",
        "format": "plain_text",
        "summary": "Résumé mis à jour"
      }
    },
    "relationships": {
      "uid": {
        "data": {
          "type": "user--user",
          "id": "{{user_uuid}}"
        }
      }
    }
  }
}

Réponse

Réponse HTTP 200. Le corps de la réponse avec le corps, résumé et auteur mis à jour.

PATCH pour supprimer une relation

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "Mon titre mis à jour",
      "body": {
        "value": "Texte du corps mis à jour",
        "format": "plain_text",
        "summary": "Résumé mis à jour"
      }
    },
    "relationships": {
      "my_entity_reference_field": {
        "data": {}
      }
    }
  }
}

Réponse

Réponse HTTP 200. Le corps de la réponse avec le corps, résumé mis à jour et la référence d’entité supprimée.

Article extrait de la documentation Drupal.