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

Add support for the HTTP QUERY method #32975

Closed
odrotbohm opened this issue Jun 6, 2024 · 12 comments · May be fixed by #33430
Closed

Add support for the HTTP QUERY method #32975

odrotbohm opened this issue Jun 6, 2024 · 12 comments · May be fixed by #33430
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) status: superseded An issue that has been superseded by another type: enhancement A general enhancement

Comments

@odrotbohm
Copy link
Member

It's probably rather early stages, but it would be nice if at some point Spring's web frameworks supported the HTTP QUERY method.

@bclozel bclozel added status: waiting-for-triage An issue we've not yet triaged or decided on in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement labels Jun 6, 2024
@bclozel
Copy link
Member

bclozel commented Jun 6, 2024

Do we know if this method is supported by HTTP clients and servers already?

@odrotbohm
Copy link
Member Author

Node 22.2 apparently already shipped it. I didn't file the ticket for immediate resolution, I just thought it would be nice to keep track of for a potential 7.0 at some point.

@bclozel
Copy link
Member

bclozel commented Jun 6, 2024

I meant servers that Spring Framework uses.

@snicoll snicoll added status: waiting-for-feedback We need additional information before we can continue and removed type: enhancement A general enhancement labels Jun 6, 2024
@bclozel
Copy link
Member

bclozel commented Jun 7, 2024

I have tested this and this already works already for functional handlers (both WebFlux and MVC). The annotation model is not supported at the moment because RequestMethod is an enum. We could consider expanding support in various places (including clients) or generally allowing custom methods as well.

I'll move this to the backlog until we get more demand for this and concrete use cases.

@bclozel bclozel added type: enhancement A general enhancement and removed status: waiting-for-feedback We need additional information before we can continue status: waiting-for-triage An issue we've not yet triaged or decided on labels Jun 7, 2024
@bclozel bclozel added this to the General Backlog milestone Jun 7, 2024
@desiderantes
Copy link

Don't have any public projects, but for what is worth:

  • I have internal projects that plan to use QUERY for GraphQL, because we want our cache to store those results for some services
  • We have some POST endpoints that would work better as QUERY.
  • We have tooling that allows to set behaviour for caching of custom methods, but blessing a whitelist is extremely annoying across team boundaries.
  • GET query params are usually inadequate for more complex forms of querying, and passing a body for GET sometimes fails in annoying ways (like silently dropping the body if a middleware decides to). Failing to support QUERY is explicit and can be handled better.

So framework support would be a great help.

@desiderantes
Copy link

The draft was refreshed recently

@bclozel
Copy link
Member

bclozel commented Aug 26, 2024

Closing in favour of #33430

@bclozel bclozel closed this as not planned Won't fix, can't repro, duplicate, stale Aug 26, 2024
@bclozel bclozel added the status: superseded An issue that has been superseded by another label Aug 26, 2024
@bclozel bclozel removed this from the General Backlog milestone Aug 26, 2024
@vpavic
Copy link
Contributor

vpavic commented Aug 29, 2024

I've also got interest in HTTP QUERY (and it eventually being supported in Spring), but from what I can see on IETF Datatracker this is still an expired draft and has been in that state for over year and a half now.

The link that was posted above (#32975 (comment)) is HTTP working group's internal draft, not an actual representation of the official state of this draft I believe (which IETF Datatracker is).

Does anyone have any insight into how likely it is this becomes an actual RFC in its current shape?

@desiderantes
Copy link

It's still active as far as I can see

@vpavic
Copy link
Contributor

vpavic commented Aug 30, 2024

@desiderantes while the links you share do indicate there's some activity in the source repository where draft is managed, those are not authoritative sources on the actual state of this draft as per IETF - only IETF Datatracker is.

I guess the draft will eventually get updated over there too, but my point is that it doesn't appear this becoming an RFC is imminent so Spring should be careful about what it adds in the meanwhile.

IMO the safest thing to do is what @bclozel mentioned in #32975 (comment):

generally allowing custom methods

@desiderantes
Copy link

desiderantes commented Oct 1, 2024

Just wanted to update that the draft is active again

@desiderantes
Copy link

Also wanted to note that, even if all custom methods are allowed, QUERY support would be beneficial, since QUERY is a safe method that can be cached and retried.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) status: superseded An issue that has been superseded by another type: enhancement A general enhancement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants