JSON: API Specification JSON: API Specification Checklist Storage Checks are saved to your local storage JSON:API v1.0
Content Negotiation
Client Responsibilities
Clients MUST send all JSON:API data in request documents with the header Content-Type: application/vnd.api+json without any media type parameters.
Clients that include the JSON:API media type in their Accept header MUST specify the media type there at least once without any media type parameters.
Clients MUST ignore any parameters for the application/vnd.api+json media type received in the Content-Type header of response documents.
Server Responsibilities
Document Structure
Top Level
Resource Objects
Identification
Fields
Attributes
Relationships
Related Resource Links
Resource Linkage
Resource Links
Resource Identifier Objects
Compound Documents
Meta Information
Links
JSON:API Object
Member Names
Allowed Characters
The following “globally allowed characters” MAY be used anywhere in a member name:
U+0061 to U+007A, “a-z”
U+0041 to U+005A, “A-Z”
U+0030 to U+0039, “0-9”
U+0080 and above (non-ASCII Unicode characters; not recommended, not URL safe)
Additionally, the following characters are allowed in member names, except as the first or last character:
U+002D HYPHEN-MINUS, “-“
U+005F LOW LINE, “_”
U+0020 SPACE, “ “ (not recommended, not URL safe)
Reserved Characters. The following characters MUST NOT be used in member names:
U+002B PLUS SIGN, “+” (used for ordering)
U+002C COMMA, “,” (used as a separator between relationship paths)
U+002E PERIOD, “.” (used as a separator within relationship paths)
U+005B LEFT SQUARE BRACKET, “[” (used in sparse fieldsets)
U+005D RIGHT SQUARE BRACKET, “]” (used in sparse fieldsets)
U+0021 EXCLAMATION MARK, “!”
U+0022 QUOTATION MARK, ‘”’
U+0023 NUMBER SIGN, “#”
U+0024 DOLLAR SIGN, “$”
U+0025 PERCENT SIGN, “%”
U+0026 AMPERSAND, “&”
U+0027 APOSTROPHE, “’”
U+0028 LEFT PARENTHESIS, “(“
U+0029 RIGHT PARENTHESIS, “)”
U+002A ASTERISK, “*”
U+002F SOLIDUS, “/”
U+003A COLON, “:”
U+003B SEMICOLON, “;”
U+003C LESS-THAN SIGN, “<”
U+003D EQUALS SIGN, “=”
U+003E GREATER-THAN SIGN, “>”
U+003F QUESTION MARK, “?”
U+0040 COMMERCIAL AT, “@”
U+005C REVERSE SOLIDUS, “\”
U+005E CIRCUMFLEX ACCENT, “^”
U+0060 GRAVE ACCENT, “`”
U+007B LEFT CURLY BRACKET, “{“
U+007C VERTICAL LINE, “|”
U+007D RIGHT CURLY BRACKET, “}”
U+007E TILDE, “~”
U+007F DELETE
U+0000 to U+001F (C0 Controls)
Fetching Data
Fetching Resources
Responses
200 OK
404 Not Found
Other Responses
Fetching Relationships
Responses
200 OK
404 Not Found
Other Responses
Inclusion of Related Resources
Sparse Fieldsets
Sorting
Filtering
Creating, Updating and Deleting Resources
Creating Resources
Client-Generated IDs
Responses
201 Created
202 Accepted
204 No Content
403 Forbidden
404 Not Found
409 Conflict
Other Responses
Updating Resources
Updating a Resource’s Attributes
Updating a Resource’s Relationships
Responses
202 Accepted
200 OK
204 No Content
403 Forbidden
404 Not Found
409 Conflict
Other Responses
Updating Relationships
Updating To-One Relationships
Updating To-Many Relationships
A server MUST respond to PATCH, POST, and DELETE requests to a URL from a to-many relationship link as described below.
For all request types, the body MUST contain a data member whose value is an empty array or an array of resource identifier objects.
If a client makes a PATCH request to a URL from a to-many relationship link, the server MUST either completely replace every member of the relationship, return an appropriate error response if some resources can not be found or accessed, or return a 403 Forbidden response if complete replacement is not allowed by the server.
If a client makes a POST request to a URL from a relationship link, the server MUST add the specified members to the relationship unless they are already present. If a given type and id is already in the relationship, the server MUST NOT add it again.
If all of the specified resources can be added to, or are already present in, the relationship then the server MUST return a successful response.
If the client makes a DELETE request to a URL from a relationship link the server MUST delete the specified members from the relationship or return a 403 Forbidden response. If all of the specified resources are able to be removed from, or are already missing from, the relationship then the server MUST return a successful response.
Responses
202 Accepted
204 No Content
200 OK
403 Forbidden
Other Responses
Deleting Resources
Responses
202 Accepted
204 No Content
200 OK
404 NOT FOUND
Other Responses
Query Parameters
Errors
Processing Errors
Error Objects
made with ❤︎ by developed using Those checklists are used in Vinta's projects and we are always looking for exciting work. So, if want to know us better feel free to get in touch.