You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vishnu Kosuri
ea255c4cfe
Fix duplicate operationId when route has multiple methods
When a route is registered with multiple HTTP methods via add_api_route(),
generate_unique_id() uses list(route.methods)[0] which is non-deterministic
(methods is a set) and the same for every method in the route. This causes
get_openapi_operation_metadata to assign identical operationIds to POST and
DELETE (or any other method pair), triggering "Duplicate Operation ID" warnings.
Two fixes:
- generate_unique_id: use sorted(route.methods)[0] so the fallback unique_id
is deterministic for single-method routes
- get_openapi_operation_metadata: for multi-method routes without an explicit
operation_id, derive the operationId from the route name/path plus the
per-iteration method instead of reusing route.unique_id
Fixes #13175
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
4 months ago
..
.agents/skills/ fastapi
📝 Update Skill, optimize context, trim and refactor into references (#15031)
5 months ago
_compat
✨ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model (#14962)
5 months ago
dependencies
✨ Add support for streaming JSON Lines and binary data with `yield` (#15022)
5 months ago
middleware
📝 Use `WSGIMiddleware` from `a2wsgi` instead of deprecated `fastapi.middleware.wsgi.WSGIMiddleware` (#14756)
5 months ago
openapi
Fix duplicate operationId when route has multiple methods
4 months ago
security
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
__init__.py
🔖 Release version 0.135.1
4 months ago
__main__.py
♻️ Add support for `pip install "fastapi[standard]"` with standard dependencies and `python -m fastapi` (#11935)
2 years ago
applications.py
♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data (#14986)
5 months ago
background.py
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
cli.py
♻️ Add support for `pip install "fastapi[standard]"` with standard dependencies and `python -m fastapi` (#11935)
2 years ago
concurrency.py
♻️ Upgrade internal syntax to Python 3.9+ 🎉 (#14564)
7 months ago
datastructures.py
🐛 Fix JSON Schema for files, use `contentMediaType` instead of `format: binary` (#14953)
5 months ago
encoders.py
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
exception_handlers.py
⬆️ Upgrade Starlette supported version range to >=0.40.0,<0.49.0 (#14077)
10 months ago
exceptions.py
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
logger.py
🔊 Refactor logging (#781)
7 years ago
param_functions.py
📝 Fix doctrings for `max_digits` and `decimal_places` (#14944)
4 months ago
params.py
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
py.typed
✨ add py.typed to ship typing information (#209)
7 years ago
requests.py
⬆ Require Pydantic > 1.0 (#1862)
6 years ago
responses.py
✨ Add support for Server Sent Events (#15030)
5 months ago
routing.py
🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack (#15038)
4 months ago
sse.py
✨ Add support for Server Sent Events (#15030)
5 months ago
staticfiles.py
✨ Improve type annotations, add support for mypy --strict, internally and for external packages (#2547)
6 years ago
templating.py
✨ Improve type annotations, add support for mypy --strict, internally and for external packages (#2547)
6 years ago
testclient.py
✨ Improve type annotations, add support for mypy --strict, internally and for external packages (#2547)
6 years ago
types.py
🎨 Update internal types for Python 3.10 (#14898)
5 months ago
utils.py
Fix duplicate operationId when route has multiple methods
4 months ago
websockets.py
✨ Export `WebSocketState` in `fastapi.websockets` (#4376)
4 years ago