Skip to content

Error 'Class "PostalAddress" does not exist' is been shown in the ApiPlatform's swagger after generating ODM documents #403

@modiamir

Description

@modiamir

API Platform version(s) affected: 3.1.10

Description
I ran the generate command to generate ODM documents from a schema configuration that had two types one of them has a reference to the other one. After the documents got generated I tried to go to API Platform's API documentation and saw this error:
"Class "PostalAddress" does not exist".

How to reproduce
In an API Platform project that supports MongoDB add this configuration file:

# config/schema.yaml
openApi:
    file: null
types:
    Person:
        properties:
            name: ~
            address: { range: https://schema.org/PostalAddress }
    PostalAddress:
        properties:
            streetAddress: ~

namespaces:
    entity: 'App\Document'
    enum: 'App\Enum'
    interface: 'App\Model'
annotationGenerators:
    - ApiPlatform\SchemaGenerator\AnnotationGenerator\PhpDocAnnotationGenerator
attributeGenerators:
    - ApiPlatform\SchemaGenerator\AttributeGenerator\ConstraintAttributeGenerator
    - ApiPlatform\SchemaGenerator\AttributeGenerator\DoctrineMongoDBAttributeGenerator
    - ApiPlatform\SchemaGenerator\AttributeGenerator\ApiPlatformCoreAttributeGenerator
    - ApiPlatform\SchemaGenerator\AttributeGenerator\ConfigurationAttributeGenerator

debug: true
useInterface: false
checkIsGoodRelations: true
id:
    generationStrategy: mongoid

and then run this command:

/vendor/bin/schema generate src/ config/schema.yaml

Possible Solution
The method getRelationName in class ApiPlatform\SchemaGenerator\AttributeGenerator\DoctrineMongoDBAttributeGenerator can have the logic to add the namespace of the reference class. currently, it returns only the name of the class. Something like the same method in class ApiPlatform\SchemaGenerator\AttributeGenerator\DoctrineOrmAttributeGenerator

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions