Problem/Motivation
This issue tracks child issues relating to JSON:API 1.1 spec compliance. The announced tag date for 1.1 is September 30, 2022.
Reference: Changelist
Remaining tasks
Areas where Drupal is not 1.0 compliant but we were ahead of 1.1; ensure tagged spec compliance.
- #3279366: [PP-1] Implement json:api 1.1 server-required profile error handling/signaling
- #3279364: [PP-1] JSON:API 1.1 Implement `error.source.missing.key` data to compliment `error.source.pointer`
Areas where Drupal is incompatible and there is no existing PP on JSON:API 1.1; that is, we're just plain out of spec.
New features/options in 1.1 that Drupal can support
Overview of all changes in spec and their releated issues:
Spec changelist
- #3386046: JSON:API 1.1: "@-Members"
- error object type links.
- Recommending camelCased
- Extensions #2955020: Spec Compliance: JSON API's profile/extention (Fancy Filters, Drupal sorting, Drupal pagination, relationship arity) needs to be explicitly communicated
- Profiles #2955020: Spec Compliance: JSON API's profile/extention (Fancy Filters, Drupal sorting, Drupal pagination, relationship arity) needs to be explicitly communicated
- Links can be represented as RFC 8288-style web links.
- describedby links member was added #3386063: JSON:API 1.1: Add descibeBy API to add link to top level, resource and relationship objects
- Local IDs were introduced so that a client can create a relationship to a resource yet-to-be created by the same request. I don't think we need to do this, we dont really allow creating multple resource in one request.
The link object params member was removedThe link object anchor target attribute was removed- Clarified details regarding expected and allowed responses, query parameters, and more.
Changelog for releases after 1.0
RC 1
- New features include: profiles, ”@-Members”, and error object
typelinks. - There are editorial clarifications around: query parameters (their parsing/serialization, and reserved parameter names), the appropriate status code for specific responses, and the presence of the
includedkey even when its value is an empty array. - JSON:API switched to recommending camelCased names.
RC 2
- Extensions were added and the scope of profiles were reduced since their introduction in RC1.
- Links can be represented as RFC 8288-style web links.
- A new
describedbylinks member was added so that implementors can incorporate description documents (e.g. OpenAPI or JSON Schema) directly into their APIs. - Local IDs were introduced so that a client can create a relationship to a resource yet-to-be created by the same request.
RC 3
- Refined links objects. The link object
paramsmember was removed to better align with other JSON link serializations. Theanchortarget attribute was also removed. It may be restored in a future minor release.
RC 4
- Formalized the definition of specification and implementation semantics.
- Refined the definitions of extensions and profiles.
- Clarified details regarding expected and allowed responses, query parameters, and more.
Issue fork drupal-3305324
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
bradjones1Comment #3
bradjones1Comment #5
bbralaGreat overview. I started tracking changes on 1.1 in another issue though so this is kinda duplicate. I don't really mind which survives. This issue has issue links, the other one a set of changes that were published in the changelogs.
#3223015: [META] JSON:API v1.1
Comment #6
bbralaUpdated IS, will close the other issue in favor of this one since we have linkage going on which is quite helpfull :)
Comment #7
bradjones1Ah OK sorry for the duplicate... one problem is that the Drupal search thinks "1.1" is too short a string to match on so I couldn't find it right away.
Comment #8
bbralaYeah had the same problem, but I knew it existed so I searched for meta :)
Comment #9
wim leersWow, very nice overview! Keeping an eye on this! 👁
Comment #10
wim leers13 days ago, the JSON:API 1.1 spec was finalized: https://jsonapi.org/format/1.1/ — so let's now make this happen!
Comment #12
bbralaI will be shifting focus to this starting next week.
Comment #13
wim leers🥳
Comment #14
bbralaComment #15
bbralaComment #16
bbralaComment #17
bradjones1Per my update in #3258084-11: [PP-1] [Upstream bug] Vendored json-schema for json:api is incorrect I have reason to include the latest draft of the 1.1 JSON Schema in the changes on #3031367: Generate JSON schema for content entity types. Also bumping the version to 1.1 there because we basically support some of it anyway and should start expressing so.
Comment #18
wim leers#3031367: Generate JSON schema for content entity types landed, including the bump to version 1.1 of the spec. I think this meta needs an update — yay, what a great problem to have! 😄