Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openapi dots are used in schema names #18

Open
lfse-slafleur opened this issue Jul 29, 2024 · 1 comment
Open

openapi dots are used in schema names #18

lfse-slafleur opened this issue Jul 29, 2024 · 1 comment

Comments

@lfse-slafleur
Copy link
Member

Currently in openapi.yml dots are used in the schema name.

Example (from https://github.com/flexiblepower/s2-ws-json/blob/v0.0.2-beta/s2-schemas-in-openapi-format/s2-ws-json-openapi.yml#L798C10-L798C21):

    DDBC.TimerStatus:
      type: object

This causes the $ref to also contain a dot in the name `. An example may be found here: https://github.com/flexiblepower/s2-ws-json/blob/v0.0.2-beta/s2-schemas-in-openapi-format/s2-ws-json-openapi.yml#L1111

        allowed_limit_ranges:
          type: array
          minItems: 2
          maxItems: 100
          items:
            $ref: '#/components/schemas/PEBC.AllowedLimitRange'

Dots are allowed according to the OpenAPI & jsonschema specifications. However, datamodel-codegen (the Python code generator) handles it erronously by assuming it is part of a path and switches over from single file to modular code generation. Issues at datamodel-codegen already exist:

koxudaxi/datamodel-code-generator#1600
koxudaxi/datamodel-code-generator#2039

Dots are not allowed in Python class names (nor in many other languages) so even if any issues are fixed, the result will not match the openapi specification exactly.

Therefor, the proposal is to remove the dot from the schema name (only) so (faulty) generators will not have a hard time and the result is the same across code generators (as some generators may replace a dot with any replacement of their choosing such as -, _ or just remove it). This would leave the dot intact in the message_type field as according to the specification.

@lfse-slafleur
Copy link
Member Author

@wilcowijbrandi What do you think? Would we want to change the openapi.yml according to the proposal or would your preference be to let code generators handle the dot?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant