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
Allow HTTP content negotiation via Accept:
header
#217
Comments
Accept:
headerAccept:
header
To resolve the single vs multiple output issue and returning their content directly in different formats, wouldn't it be better to simply define an endpoint as follows: I don't like how |
@fmigneault A few things:
This is kind of a separate issue. Even without this
There is no conflict, because what is returned is determined by whether the
I actually would very much like something like this... And you got me thinking a lot...
This would properly address #204, obsolete #215, and I think in general is a huge improvement in following the OGC API Web Guildelines Principle #2, #9 & #10. The table of possibilities is greatly reduced, without losing any real flexibility. It makes things much easier to implement on the server, and the specifications a lot easier to understand. |
You guys realize that this means that any hope of getting the specification out in the next few months is out the door ... right? If we apply these changes it will mean touching almost every file in the specification and then we need to give implementors time to implement the changes and verify the specification. I'm not saying I don't like this (my server actually implements a /jobs/{jobId}/results/{resultId} endpoint) but the implications are enormous! |
@pvretano Let's say we have a PR ready for Monday, 2 server implementations and a 1 client implementation, we can still discuss on Monday, present the document at the Members Meeting on Tuesday, and have an electronic vote ending 3 weeks from then? Really, the changes are about avoiding corner/impractical cases which make things harder to implement, so I feel it will have minimum impact on implementations (other than requiring the . |
@jerstlouis as I said I am not opposed to the proposal BUT if we move ahead with it then I would make a motion to withdraw the adoption vote until further notice. We cannot keep drifting in this manner without ever reaching an endpoint and we cannot keep making such big changes in a rushed manner. This change is big and would require a lot of documentation changes, a lot of review of those changes, implementations would need to updated to test the changes and to verify the standard. For an adoption vote, three implementations would be required at a minumum. |
How complete/well tested those 3 implementations have to be though, especially considering we don't yet have an executable test suite ready? Can the standard be fully approved before the ETS is ready and 3 implementations pass it? We made huge progress this week I think, but I don't think any single imlementation fully conforms to the current specifications, and I feel the proposal actually moves that goal of having 3 fully conforming implementations closer as it reduces the number of execution combinations to support (without losing flexibility from a client's perspective). |
@jerstlouis the P&P says full track standards need "evidence" of implementation. What we just did with the workshop is evidence of implementation so we would probably need to run another workshop once the specification has been updated and at least 3 implementations are ready for testing. |
@pvretano I don't think these changes affect anything that was demonstrated this week in TIEs between implementations from different participants. Honestly, I personally feel like we should do more of this with more TIEs before the standard is fully approved regardless of any changes (the July code sprint being the perfect opportunity). |
@jerstlouis I am with Peter on this. I use to have a boss that said you have to draw a line in the sand because developers will never finish coding - they always think they can make it better. We are not going to continue all of this last minute proposals. You are welcome to create the issue (which you have) and we can see if there is a supported motion to discuss it. But until a motion is put forth to discuss it (in a quorum meeting), it cannot even be discussed on the formal board like this. I would even say it borders on breaking the Code of Conduct within the OGC. On Monday, nothing prevents you from making a motion to see if others support you. But at this point I don't support opening the door for discussion and I will force a vote. This last minute stuff has to stop at some point. |
@sptillma I apologize if I am breaking the Code of Conduct. |
@jerstlouis It is the place to have technical discussions, but not in regards to the current draft based on the motion to freeze functionality was passed. |
I really like overall the description in #217 (comment) Only issue I can think of is that the server is still allowed to ignore
Otherwise, anything else looks fine to me. |
@fmigneault We will meet on Monday morning 8:00 AM Eastern and hopefully discuss whether we can discuss this proposal. It would be great if you can join us.
The recommendation could include a certain threshold, say 10kb. Like anything with the |
Initial check-in to implemented changes for Issue #217.
Perhaps in a way similar to the solution proposed for #215, I propose that we allow content negotiation of the response via
Accept:
header forraw
responses.For a single output, this would allow specifying response format without having to specify a big
outputs
block and untangle the format from the execution request, faclitating re-usability.For multiple outputs, it could be a way to select a particular multipart encoding.
(For
document
response, theAccept:
format would refer to the document itself, e.g. XML instead of JSON encoding)This would make the API a lot more in line with the OGC API web guidelines.
Similar to #215, the header or the request would override the other.
My preference actually would be for the header to override the body, since it is the request document that would likely be re-used and the header would provide a mechanism to override the request without modifying the request document itself.
The text was updated successfully, but these errors were encountered: