The API that the JSON:API module makes available is centered on Drupal's entity types and bundles. Every bundle receives its own, unique URL path, which all follow a shared pattern
JSON:API specifies what HTTP Methods to accept. Those are: GET, POST, PATCH, and DELETE. Notably, PUT is not included.
- GET - Retrieve data, can be a collection of resources or an individual resource
- POST - Create a new resource
- PATCH - Update an existing resource
- DELETE - Remove an existing resource
Typically some form of authentication is used for POST requests. The examples below all use Basic Authentication. Enable the HTTP Basic Authentication module, set the permission for the API user (and role) and set the encoded username and password to the 'Authorization' request header.
Make sure to use 'Content type' and 'Accept' headers when appropriate
Accept: application/vnd.api+json Content-Type: application/vnd.api+json
The JSON:API Specification also dictates acceptable responses. The Drupal implementation uses a subset of those. The module can respond with the following codes:
- 200 OK - All successful GET and PATCH requests
- 201 Created - All successful POST requests (response includes the newly created resource)
- 204 No Content - All successful DELETE requests
And here's the detailed documentation - https://www.drupal.org/docs/8/modules/jsonapi/get-post-patch-and-delete
And here's the sample postman collection - https://gitlab.com/heykarthikwithu/drupal-jsonapi---sample-api-calls