openapi-generators / openapi-generators/openapi-python-client
`anyOf` in responses generates invalid body parser
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 2k
- Forks
- 293
- Merge medio
- 34 min
- PR fusionados (30 d)
- 1
Descripción
Describe the bug
When a response media type has an anyOf schema, the generated code does not parse it properly/is not valid. (see add'l context)
OpenAPI Spec File
https://gist.github.com/nkrishnaswami/8c4a2068d8ac59cab153136a6069b44d
Desktop (please complete the following information):
- OS: macOS 15.6
- Python Version: 3.12.8
- openapi-python-client version: git revision
13bf2e8
Additional context
def _parse_response_200(data: object) -> Union["Response200", Literal["Why have a fixed response? I dunno"]]:
response_200_type_0 = cast(Literal["Why have a fixed response? I dunno"], data)
if response_200_type_0 != "Why have a fixed response? I dunno":
raise ValueError(
f"response_200_type_0 must match const 'Why have a fixed response? I dunno', got '{response_200_type_0}'"
)
return response_200_type_0
if not isinstance(data, dict):
raise TypeError()
response_200_type_1 = Response200.from_dict(data)
return response_200_type_1
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el OpenAPI Spec File enlazado en el issue y reproduce el ejemplo generado parse_response_200 para un esquema de respuesta que use anyOf. Compara las ramas del parser generadas y verifica que la salida sea válida y pueda analizar tanto la alternativa fixed-value como la alternativa Response200.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- openapi, python
- Área
- api, tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 38/100