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

Clarify use of 'wait' preference without 'respond-async' preference #382

Open
ralfhandl opened this issue Mar 20, 2024 · 0 comments · May be fixed by #229
Open

Clarify use of 'wait' preference without 'respond-async' preference #382

ralfhandl opened this issue Mar 20, 2024 · 0 comments · May be fixed by #229
Assignees
Labels
Protocol Protocol, URL Conventions V4.02

Comments

@ralfhandl
Copy link
Contributor

The specification as is is a bit unclear around the behavior/expectation that a client might have from a server when a client is specifying a wait preference in case there is not also a respond-async preference.

8.2.8.10 describing this behavior in our specification, whilst referencing RFC7240, states that if the respond-async preference has not been specified, the service MAY interpret the wait as a request to timeout after the specified period of time.

The referenced Prefer Header for HTTP specification in section 4.3 pertaining to the "wait" preference states however that a service can choose to utilize an asynchronous processing model in that case and return a 202 Accepted.

Looking at 9.1.3 in the OData protocol specification pertaining to the 202 Accepted Response Code, whilst stating that is returned when an asynchronous request hasn't been completed yet, refers to the sections on asynchronous requests.

Whilst one doesn't preclude the other it has caused confusion in our interpretation/implementations so I thought some clarification might be in order.

Proposal

Be specific about the behavior of the status monitor resource regarding wait:

If a client queries the status monitor resource with a wait preference, the preference applies to the status query and not to the original request that is/was processed asynchronously. A server may

  • ignore this preference on a status query, or
  • send 202 Accepted if it cannot figure out within the given length of time whether the original async request is still being processed (i.e. assume it is still running)

Imported from ODATA-1610

@ralfhandl ralfhandl added Protocol Protocol, URL Conventions V4.01_ERRATA01 labels Mar 20, 2024
@ralfhandl ralfhandl linked a pull request Apr 23, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Protocol Protocol, URL Conventions V4.02
Projects
Status: Open
Development

Successfully merging a pull request may close this issue.

2 participants