openapi-generators / openapi-generators/openapi-python-client

`anyOf` in responses generates invalid body parser

Aberta
#1,263 0 comentários 5 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Python
Estrelas
2k
Forks
293
Merge médio
34min
PRs com merge (30d)
1

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo OpenAPI Spec File vinculado na issue e reproduza o exemplo gerado parse_response_200 para um schema de resposta que use anyOf. Compare as ramificações geradas do parser e verifique se a saída é válida e consegue fazer o parsing tanto da alternativa fixed-value quanto da alternativa Response200.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
openapi, python
Domínio
api, tooling
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.