Azure / Azure/azure-functions-host
feat: Support HTTP QUERY method (RFC 10008) in Azure Functions HTTP triggers
- Dominant language
- C#
- Stars
- 2k
- Forks
- 482
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 36
Description
Thank you for your continued work on Azure Functions — we rely heavily on this platform for production-grade APIs.
## Feature Request
Add support for the HTTP `QUERY` method defined in [RFC 10008](https://www.rfc-editor.org/info/rfc10008) in Azure Functions HTTP triggers.
## Background
The `QUERY` method fills the gap between `GET` and `POST` for read-only operations. Currently APIs are forced to use `POST` when a request body is needed for complex queries — which is semantically incorrect as `POST` implies a state-changing operation. `QUERY` is:
- **Safe** — read-only, like `GET`
- **Idempotent** — repeating the request has the same effect
- **Body-supporting** — unlike `GET`, allows a request body for complex query parameters
## What's already done
The Python worker SDK side has been implemented in:
**Azure/azure-functions-python-library#350**
`HttpMethod.QUERY` has been added to the `HttpMethod` enum, with full test coverage for the converter, trigger binding, and ASGI/WSGI middleware layers.
## What's needed from the host
For this to work end-to-end on Azure-hosted Functions, the host needs to:
1. Accept `QUERY` as a valid HTTP method on its listener
2. Forward the request body to the Python (and other language) workers
## Example usage (once supported)
```python
@app.route(route="products", methods=[HttpMethod.QUERY])
def query_products(req: func.HttpRequest) -> func.HttpResponse:
filters = req.get_json()
...
Contributor guide
Research direction
Start by tracing the Azure Functions host's HTTP trigger listener and the request forwarding path to language workers, using the completed Python worker work in Azure/azure-functions-python-library#350 as context. Done means the host accepts QUERY requests and forwards their bodies to Python and other workers without breaking existing HTTP methods.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100