Skip to content

Add support for the HTTP QUERY method #32975

Not planned
@odrotbohm

Description

@odrotbohm
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.

Activity

added
in: webIssues in web modules (web, webmvc, webflux, websocket)
on Jun 6, 2024
bclozel

bclozel commented on Jun 6, 2024

@bclozel
Member

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

odrotbohm

odrotbohm commented on Jun 6, 2024

@odrotbohm
MemberAuthor

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

bclozel commented on Jun 6, 2024

@bclozel
Member

I meant servers that Spring Framework uses.

added and removed on Jun 6, 2024
bclozel

bclozel commented on Jun 7, 2024

@bclozel
Member

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.

added this to the General Backlog milestone on Jun 7, 2024
desiderantes

desiderantes commented on Aug 23, 2024

@desiderantes

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.

4 remaining items

removed this from the General Backlog milestone on Aug 26, 2024
vpavic

vpavic commented on Aug 29, 2024

@vpavic
Contributor

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

desiderantes commented on Aug 29, 2024

@desiderantes

It's still active as far as I can see

vpavic

vpavic commented on Aug 30, 2024

@vpavic
Contributor

@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

desiderantes commented on Oct 1, 2024

@desiderantes

Just wanted to update that the draft is active again

desiderantes

desiderantes commented on Oct 8, 2024

@desiderantes

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.

reopened this on Jun 3, 2025
added this to the General Backlog milestone on Jun 3, 2025
bclozel

bclozel commented on Jun 5, 2025

@bclozel
Member

Superseded by #34993

removed this from the General Backlog milestone on Jun 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in: webIssues in web modules (web, webmvc, webflux, websocket)status: supersededAn issue that has been superseded by anothertype: enhancementA general enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @bclozel@odrotbohm@snicoll@vpavic@desiderantes

      Issue actions

        Add support for the HTTP QUERY method · Issue #32975 · spring-projects/spring-framework