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

Many-to-many relationship specification doesn't work #448

Open
al3ad opened this issue Feb 22, 2024 · 0 comments
Open

Many-to-many relationship specification doesn't work #448

al3ad opened this issue Feb 22, 2024 · 0 comments

Comments

@al3ad
Copy link

al3ad commented Feb 22, 2024

Using OpenAPI generator 7.1.0 I attempted to generate the YAML spec provided on the tutorial.

However, when I do that I get the following error:

Traceback (most recent call last):
  File "/usr/src/app/./openapi_server/__main__.py", line 29, in <module>
    app = create_app(app_config)
  File "/usr/src/app/./openapi_server/__init__.py", line 45, in create_app
    init_yaml(spec_file, base=SQLALCHEMY_DB.Model, models_filename=models_filename)
  File "/usr/local/lib/python3.8/dist-packages/open_alchemy/__init__.py", line 206, in init_yaml
    return _init_optional_base(
  File "/usr/local/lib/python3.8/dist-packages/open_alchemy/__init__.py", line 122, in _init_optional_base
    init_model_factory(
  File "/usr/local/lib/python3.8/dist-packages/open_alchemy/__init__.py", line 67, in init_model_factory
    _schemas_module.process(schemas=schemas, spec_filename=spec_path)
  File "/usr/local/lib/python3.8/dist-packages/open_alchemy/schemas/__init__.py", line 25, in process
    validation.process(schemas=schemas, spec_filename=spec_filename)
  File "/usr/local/lib/python3.8/dist-packages/open_alchemy/schemas/validation/__init__.py", line 130, in process
    raise _exceptions.MalformedSchemaError(other_results_result.reason)
open_alchemy.exceptions.MalformedSchemaError: duplicate "x-tablename" value project defined on the schema Employee_projects_inner, already defined on the schema Project      
unable to load app 0 (mountpoint='/') (callable not found or import error)

I'm not sure if the problem is with my setup or with openAlchemy?

Here's the YAML spec for convenience:

openapi: "3.0.0"

info:
  title: Test Schema
  description: API to illustrate Many to Many Relationships.
  version: "0.1"

paths:
  /project:
    get:
      summary: Used to retrieve all projects.
      responses:
        200:
          description: Return all projects from the database.
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Project"
  /employee:
    get:
      summary: Used to retrieve all employees.
      responses:
        200:
          description: Return all employees from the database.
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Employee"

components:
  schemas:
    Project:
      description: A large sized business objective.
      type: object
      x-tablename: project
      properties:
        id:
          type: integer
          description: Unique identifier for the project.
          example: 0
          x-primary-key: true
        name:
          type: string
          description: The name of the project.
          example: Expand to the USA
    Employee:
      description: Person that works for a company.
      type: object
      x-tablename: employee
      properties:
        id:
          type: integer
          description: Unique identifier for the employee.
          example: 0
          x-primary-key: true
        name:
          type: string
          description: The name of the employee.
          example: David Andersson
        projects:
          type: array
          items:
            allOf:
              - "$ref": "#/components/schemas/Project"
              - x-secondary: employee_project
          description: The projects the employee is working on.
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