Azure / Azure/azure-functions-host

feat: Support HTTP QUERY method (RFC 10008) in Azure Functions HTTP triggers

Open
#11,865 0 comments 0 reactions 0 assignees View on GitHub
Needs: Triage (Functions)
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.