-
Notifications
You must be signed in to change notification settings - Fork 232
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
OPTIONS for version negotiation #293
Conversation
provider/README.md
Outdated
|
||
Here is an example payload: | ||
|
||
"versions": [ "0.2", "0.3" ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's probably worth documenting somewhere about the rationale of trimming these to minor version only.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've updated this do the negotiation using the OPTIONS
method and am now returning the whole string a client would use in the request ACCEPT
header. It is now made explicit in the README.md file.
@billdirks - we'd talked about on the call switching this over to an |
To summarize discussion from 4/11 & 4/18 and give a little bit more detail on the possible implementation using
This means an Ask for options, stating that version 0.2 is preferred to version 0.3 (using the q parameter):
Answer: Only version 0.3 available
This allows version negotiation without changing the specification. A PR for some added precisions (in readme and/or JSON spec) could be good, if anyone feels up to it. @billdirks would this fit your need ? |
Thank you for the feedback! I've updated the README to explicitly describe how the |
i feel that this overcomplicates the versioning of the MDS Provider spec at a very early stage. my understanding of right now, clients interface with the MDS Providers API either through their own software or using MDS Provider Services, and in either case I don't see a need to do content negotiation -- either the client-side software is ready to accept an updated version of MDS, or it will use an older version of MDS. if a client can accept an updated version of MDS Provider, i don't see a case where they would want to accept the older version, which would happen via my perspective on this may be missing some things here, but i don't see much value in including this in the spec. |
Explain pull request
Please provide a clear and concise reason for this pull request and the impact of the change
Is this a breaking change
A breaking change would require consumers or implementors of the API to modify their code for it to continue to function (ex: renaming of a required field or the change in data type of an existing field). A non-breaking change would allow existing code to continue to function (ex: addition of an optional field or the creation of a new optional endpoint).
[ X ] Yes, breaking*
[ ] No, not breaking
[ ] I'm not sure
*The old endpoints work identically. This PR adds a new
versions
endpoint.Provider
oragency
Which API(s) will this pull request impact:
[ X ]
provider
[ ]
agency
[ ] both
Additional context
During the weekly provider MDS meeting on 4/4/2019 Jascha, @jfh01, asked me to put together a PR for a
versions
endpoint. In addition to updating the README, I've made a JSON schema for this endpoint, generated the JSON schema usinggenerate_provider_schema.py
, and validated as follows:Comments and feedback appreciated!