-
Notifications
You must be signed in to change notification settings - Fork 890
Resource Versioning Profile #1333
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
base: gh-pages
Are you sure you want to change the base?
Changes from 1 commit
df9838a
e815ccd
c302a8c
84d4840
ea9c13c
9d9e263
9368cbc
d3c1d13
cac4baf
56bc05e
75659ce
2d5346e
c351d9c
3e4b67e
515aba9
0feddd6
b0a1e3d
f0d73db
a4329d5
7a352dc
9129eb2
ba9bf0b
6bc95be
1a1395d
e4adbd7
5c5b0f4
c82ecbe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -232,6 +232,19 @@ If provided, resource objects' `self` links **MUST NOT** be the same. | |
|
||
# Version Negotiators | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [Design feedback/interoperable implementations review requirement] If I'm understanding correctly, each server implementation can define its own version negotiators, with multiple servers using the same negotiator name in different ways (and no central registry). That seems not great for interoperability. It would also seem to mean that no other version negotiators can ever be standardized as part of this profile, because they could conflict with existing implementations. Is that really what you want? My gut instinct would be to make this profile's spec the canonical list of all legal version negotiators. Then, you can add more over time to this spec as they're requested. To support people who really need to use a version negotiator that isn't part of your profile, you could have some set of negotiator names/schemes/namespaces that are allowed to have implementation-specific meanings. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cc: @wimleers cause it's his inbox that I suggested too 😛 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm OK with that. However I still think that doc curies offer a lower barrier of entry. One could document the new crazy negotiator in their blog and have the server implementation point to that, instead of adding it here. Many will just not go through the trouble to send their idea to some email addresses and be potentially blocked by them. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess I wanted to discourage non-standard negotiators being used as a standard and keep them isolated. My feeling was that sending an email saying "hey, I'd like to add a negotiator like this..." doesn't seem like a super high barrier. In some ways, it's even less difficult than opening a PR. What if we add this:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @e0ipso, would that work? |
||
|
||
This profile defines a number of version negotiators which a server **MAY** | ||
implement. Additional version negotiator's may be added to this profile at a | ||
later date. | ||
|
||
Version negotiators which are not defined by this profile **MUST** adhere to the | ||
same constraints as [implementation-specific query parameter names](https://jsonapi.org/format/1.1/#query-parameters-custom). | ||
|
||
It is **RECOMMENDED** that any alternative version negotiators be added to this | ||
profile. New version negotiators may be registered by sending one, joint email | ||
to the profile editors with the subject line: "New JSON:API Resource Version | ||
Negotiator: {negotiator name}". This will begin a process of refinement and/or | ||
result in a determination of fitness for addition to this profile. | ||
|
||
## ID-Based Version Negotiator | ||
gabesullice marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
This profile establishes the `id` version negotiator. An `id`-based version | ||
|
Uh oh!
There was an error while loading. Please reload this page.