Skip to content

Define GET/POST fallback for Search / Type Index when QUERY is unavailable #205

Description

@ebremer

#179 made QUERY primary for Search / Type Index. Review/call asked for GET/POST fallback where QUERY is not available (pchampin, TallTed, jeremycaine). Related: #184.

Ask: Keep QUERY primary; document GET (URI-sized queries) and/or POST (body) as fallback, plus how clients discover/choose the path. Resolve before CR.

Current data on software ecosystem:

Stack Status Repo ★ Stars PR / issue Days after RFC (Jun 16 = day 0) Notes
Go (net/http) ⚠️ Manual golang/go 135,304 Issue #80058 — open · PR #80134 — open +2 issue (Jun 18) · PR +8 (Jun 24) Raw method strings work; MethodQuery proposal + PR not merged
Node.js (core) ✅ Shipped nodejs/node 118,327 v21.7.2 release (llhttp 9.2.0 bump, no single PR) −804 (Apr 3, 2024) Earliest shipper
Deno ⚠️ Open denoland/deno 107,760 Issue #36186 — open +34 (Jul 20) Feature request for full RFC 10008 support; fetch() may already accept method string
Bun ⚠️ Open oven-sh/bun 94,911 Issue #34839 — open +34 (Jul 20) Feature request for full RFC 10008 support; no native first-class support yet
Express ✅ Works expressjs/express 69,226 Issue #5615 — closed completed, no code PR −787 (Apr 20, 2024) Filed 17 days after Node shipped parsing
Spring ❌ Not shipped spring-projects/spring-framework 60,128 PR #34993 — open (fixes #32975); #36988 closed as duplicate −378 (Jun 3, 2025) · revived +15–17 Community-approved Jul 3; still open
Rails ⚠️ PR open rails/rails 58,634 PR #57973 — open (proposal thread) ~+6 proposal → +17 PR (Jul 3) Rails core reviewed +30; active through +31
curl ✅ Generic curl/curl 42,429 none needed n/a -X QUERY works today
ASP.NET Core ⚠️ Preview dotnet/aspnetcore 38,222 PR #65714 — shipped in 11 Preview 4 −35 (May 12, 2026) OpenAPI recognizes QUERY as operation type
Fastify ✅ Shipped (main) fastify/fastify 36,767 PR #6832 — merged · closes #6807 +5 issue (Jun 21) · merged +30 (Jul 16) First-class QUERY (not only addHttpMethod); release tag TBC
nginx ⚠️ Open nginx/nginx 31,171 PR #1488 — open · (#1511 closed, not merged) +6 (Jun 22) Recognition only; body cache key TBD
OpenAPI ✅ Spec-level OAI/OpenAPI-Specification 31,098 3.2.0 announcement −266 (Sep 23, 2025)
WHATWG HTML ⚠️ Open whatwg/html 9,329 Issue #12594 — open (<form method="query">) +1 (Jun 17) Needs implementer interest; today falls back to GET
Cloudflare workerd ⚠️ Open cloudflare/workerd 8,411 Issue #6849 — open +14 (Jun 30) Body-keyed QUERY caching (RFC 10008 §2.7) via Cache API
Tomcat ✅ Merged apache/tomcat 8,211 PR #1026 — merged +15 (Jul 1) Release placement TBC
undici ✅ Shipped nodejs/undici 7,651 Issue #5454 — closed · PR #5459 — merged +11 issue (Jun 27) · PR +13 (Jun 29) · first npm 8.6.0 at +16 Still present in 8.8.0 (+34)
Jetty ⚠️ Open jetty/jetty.project 4,091 PR #15316 — open +5 (Jun 21) Retargeted to Jetty 13.0.x
Apache httpd ❓ Nothing apache/httpd 4,034 none found n/a Passthrough only
Browsers / fetch() ✅ Works, unofficial whatwg/fetch 2,243 Issue #1938 — open +14 (Jun 30) Plus Mozilla #1430 (open) · WebKit #692 (closed invalid)
Rust http crate ✅ Shipped hyperium/http 1,362 PR #798 — merged · closes #743; #847 closed as duplicate 0 (Jun 16) Method::QUERY constant; safe + idempotent
Jakarta Servlet ✅ Completed jakartaee/servlet 325 Issue #1068 — closed completed +9 (Jun 25) · closed ≤+34 Cites Tomcat PR
W3C LWS ✅ Merged, contested w3c/lws-protocol 26 PR #179 — merged +10 · merged ≈+34 Fallback debate = your thread
RFC 10008 ✅ Published IETF HTTP WG RFC 10008 (datatracker) 0 (Jun 16, 2026) IESG approval Nov 20, 2025 = −208

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions