OpenAPITools / OpenAPITools/openapi-generator

[BUG][Python] python-fastapi 7.9.0 generator fails to generate types for enum schemas

Open
#20,151 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue: Bug
Dominant language
Java
Stars
26.8k
Forks
7.7k
PR merge metrics
PR metrics pending

Description

Bug Report Checklist
  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

Generator returns boilerplate without any declaration of schema type if it's an enum.

openapi-generator version

7.9.0

OpenAPI declaration file content or url
components:
  schemas:
    uuid:
      title: UUID
      type: string
    contentformat:
      title: Content Format
      type: string
      description: Identifies the content format for a flow or source using a URN string.
      enum:
        - 'urn:x-nmos:format:video'
        - 'urn:x-nmos:format:audio'
        - 'urn:x-nmos:format:data'
        - 'urn:x-nmos:format:multi'
Generation Details

This is the output I get in the functions generated using contentformat schema:

format:  = Query(None, description="Filter on flow format.", alias="format"),

whereas I would expect

format: str = Query(None, description="Filter on flow format.", alias="format"),

It also doesn't declare the type anywhere else in the generated function. If you get rid of the enum property from the schema it generates as expected.

Steps to reproduce
build-server-local-fastapi:
	docker run --user ${USER}:${GROUP} --rm \
                   -v ${PWD}:/local openapitools/openapi-generator-cli:v${GEN_VER} generate \
				   --additional-properties=apiNameSuffix=controller_impl \
                   -t /local/.templates/7.9.0/python_fastapi/.openapi-generator-server/ \
                   -i /local/openapi.yaml \
                   -g python-fastapi \
                   -o /local/python_fastapi/

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the Docker command using openapi.yaml and the python-fastapi generator, then inspect the custom template path .templates/7.9.0/python_fastapi/.openapi-generator-server/. Done means generated functions declare enum-schema parameters as str, such as format: str = Query(...), rather than leaving the type blank.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, fastapi, python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.