Added support for the HTTP QUERY method: @app.query() decorator,
Method.QUERY, test client query() helper, and cacheable QUERY responses with
body-aware cache keys.
Added a dedicated Uploads documentation page covering
UploadFile, multipart streaming, mixed forms, validation, and testing.
Added a dedicated Testing documentation page covering
TestClient, AsyncTestClient, ASGI/RSGI tests, headers, cookies, the
QUERY method, lifespan events, and dependency overrides.
Added a dedicated API Versioning documentation page
covering APIRouter(version="v1") for URL path versioning,
APIVersion.from_header for X-API-Version header versioning,
APIVersion.from_accept for Accept-header content negotiation, and
DeprecationHeader for emitting Deprecation / Sunset headers on
deprecated routes and routers.
Added RouteConflictError for duplicate route conflicts; it subclasses
ValueError so existing catch blocks continue to work.
Added version=, deprecated=, and deprecation_description= to
@router.websocket(...) and APIRouter.add_websocket_route.
Added optional GraphQL support via the graphql extra and
velocipy.features.graphql.GraphQL. Supports HTTP queries/mutations,
GraphiQL, context injection, multipart file uploads, and WebSocket
subscriptions over graphql-transport-ws and legacy graphql-ws. See
GraphQL for documentation and usage examples.