Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement "Bulk Extension" with create/update/delete queries through json-api with RC3 #100

Closed
arthurkushman opened this issue Mar 1, 2018 · 2 comments

Comments

@arthurkushman
Copy link
Contributor

arthurkushman commented Mar 1, 2018

Now finally it is released in RC state - Implement http://jsonapi-rc3.herokuapp.com/extensions/bulk/

@arthurkushman arthurkushman self-assigned this Mar 1, 2018
@arthurkushman arthurkushman changed the title Multiple update impl with update/delete queries through json api Implement "Bulk Extension" with create/update/delete queries through json-api with RC3 Aug 13, 2018
@arthurkushman
Copy link
Contributor Author

Add headers support for extensions - http://jsonapi-rc3.herokuapp.com/format/#extending

@arthurkushman
Copy link
Contributor Author

EXTENDING SPEC:

The base JSON API specification MAY be extended to support additional capabilities.

An extension MAY make changes to and deviate from the requirements of the base specification apart from this section, which remains binding.

Servers that support one or more extensions to JSON API MUST return those extensions in every response in the supported-ext media type parameter of the Content-Type header. The value of the supported-ext parameter MUST be a comma-separated (U+002C COMMA, ",") list of extension names.

For example: a response that includes the header Content-Type: application/vnd.api+json; supported-ext="bulk,jsonpatch" indicates that the server supports both the "bulk" and "jsonpatch" extensions.

If an extension is used to form a particular request or response document, then it MUST be specified by including its name in the ext media type parameter with the Content-Type header. The value of the ext media type parameter MUST be formatted as a comma-separated (U+002C COMMA, ",") list of extension names and MUST be limited to a subset of the extensions supported by the server, which are listed in supported-ext of every response.

For example: a response that includes the header Content-Type: application/vnd.api+json; ext="ext1,ext2"; supported-ext="ext1,ext2,ext3" indicates that the response document is formatted according to the extensions "ext1" and "ext2". Another example: a request that includes the header Content-Type: application/vnd.api+json; ext="ext1,ext2" indicates that the request document is formatted according to the extensions "ext1" and "ext2".

Clients MAY request a particular media type extension by including its name in the ext media type parameter with the Accept header. Servers that do not support a requested extension or combination of extensions MUST return a 406 Not Acceptable status code.

If the media type in the Accept header is supported by a server but the media type in the Content-Type header is unsupported, the server MUST return a 415 Unsupported Media Type status code.

Servers MUST NOT provide extended functionality that is incompatible with the base specification to clients that do not request the extension in the ext parameter of the Content-Type or the Accept header.

Note: Since extensions can contradict one another or have interactions that can be resolved in many equally plausible ways, it is the responsibility of the server to decide which extensions are compatible, and it is the responsibility of the designer of each implementation of this specification to describe extension interoperability rules which are applicable to that implementation.

When the value of the ext or supported-ext media type parameter contains more than one extension name, the value MUST be surrounded with quotation marks (U+0022 QUOTATION MARK, """), in accordance with the HTTP specification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant