Articles

This page shows examples of PATCH requests for the JSON:API module.
Enabling update operation
Visit /admin/config/services/jsonapi
and check the "Accept all JSON:API create, read, update, and delete operations." option.


This page shows examples of various POST requests for the JSON:API module.
POST requests are used to create new resources. If you need to modify resources, you want to PATCH them.


This page shows examples of various GET requests for the JSON:API module.
In all examples below, no request headers are required. No authentication is required if anonymous users can access content entities. For config entities like menu's see last section(s).
Note that in all cases, when an id is needed, it is always the entity's uuid, not the entity id.


This section contains examples and information per request type: GET, POST, PATCH and DELETE
About the examples
All examples are working examples that you can try either in a browser or a JSON client (for example: Postman). You need a standard Drupal installation, a number of Article nodes and the JSON:API module enabled.


JSON:API supports very simple multilingual functionality. It does not support advanced use cases.


The JSON:API module exposes entity revisions as resource versions, in a manner inspired by RFC5829: Link Relation Types for Simple Version Navigation between Web Resources.
Current limitations:


JSON:API makes it possible to retrieve multiple resources in a single request, these routes are called "collection" routes. One can fetch a collection of resources by sending a GET request to the base resource route, e.g. GET /jsonapi/node/article
and not including a UUID. By default, this will include all resources of the specified type.
Filtering and sorting are available by default on all standard resources.


Pagination can be a deceptively complex topic. It's easy to fall into traps and not follow best-practices. This page will help you do pagination "right". That is, if you read and understand this page, we think your client will be more robust and future-proof and make your life easier down the road.
If you take only one thing away from this guide, it should be that you should not construct your own pagination URLs.


TL;DR: Use a query string like ?include=field_comments.uid
to include all the entities referenced by field_comments
and all the entities referenced by uid
on those entities!
JSON:API helps you eliminate HTTP requests by allowing you to specify relationship paths which you would like to be included in the response document. How?


Collections are listings of resources. In a decoupled site, they're what you use to create things like a "New Content" list or "My content" section on the client-side.
However, when you make an unfiltered request to a collection endpoint like /jsonapi/node/article
, you'll just get every article that you're allowed to see.
