api-platform / api-platform/schema-generator

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

Open
#403 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
474
Forks
107
PR merge metrics
No merged PRs in 30d

Description

**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`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.