mirror of https://github.com/tiangolo/fastapi.git
fix(openapi): avoid duplicated anyOf refs from shared app-level responses
The OpenAPI generator performed only a shallow copy of `additional_response`, causing nested objects (e.g., `content`) to be shared across all routes during openapi generation. When `deep_dict_update()` merged schemas for each route, the shared `anyOf` array accumulated duplicate $ref entries. Switching to a deep copy ensures each route processes an isolated response definition and prevents duplication.
This commit is contained in:
parent
61ffa3eb82
commit
4fffe81a71
|
|
@ -1,3 +1,4 @@
|
|||
import copy
|
||||
import http.client
|
||||
import inspect
|
||||
import warnings
|
||||
|
|
@ -378,7 +379,7 @@ def get_openapi_path(
|
|||
additional_status_code,
|
||||
additional_response,
|
||||
) in route.responses.items():
|
||||
process_response = additional_response.copy()
|
||||
process_response = copy.deepcopy(additional_response)
|
||||
process_response.pop("model", None)
|
||||
status_code_key = str(additional_status_code).upper()
|
||||
if status_code_key == "DEFAULT":
|
||||
|
|
|
|||
Loading…
Reference in New Issue