OpenAPITools / OpenAPITools/openapi-generator

[bug][symfony] AnyType is not defined

Ouverte
#17,618 0 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Issue: Bug
Langage dominant
Java
Étoiles
26.8k
Forks
7.7k
Métriques de merge des PR
Métriques de PR en attente

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

AnyType is not defined in symfony server generated code.
In some situations, schemas return any, this is handled in other languages where that is translated into something the language understands, examples:

  • Java: Object
  • C#: `Object
  • Rust: serde_json:Value

However, this translation is not made for symfony, and the generators write AnyType in such situations, leading to type errors:
AnyType is not defined anywhere.

image

openapi-generator version

7.2.0

some_data:
      type: object
      additionalProperties: true

or

some_data:
      type: object
      additionalProperties: {}

when a request is made with some data , this exception is thrown by JMSSerializer in vendor/jms/metadata/src/MetadataFactory.php

curl --location --request POST 'http://localhost:8000/myservice' \
--header 'Content-Type: application/json' \
--data-raw '{
  "some_data": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  }
}'

Uncaught PHP Exception ReflectionException: "Class "AnyType" does not exist" at MetadataFactory.php line 175

image

Generation Details
openapi-generator-cli \                        
    generate \
    -i openapi.yaml \
    -g php-symfony \
    -o .
Steps to reproduce
Related issues/PRs

its the same issue as this one was for typescript https://github.com/OpenAPITools/openapi-generator/issues/6332

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par exécuter la commande openapi-generator fournie avec le générateur php-symfony et le schéma d’exemple utilisant additionalProperties. Suivez le type généré à travers le traitement de la requête jusqu’à vendor/jms/metadata/src/MetadataFactory.php. Le travail est terminé lorsque le code Symfony généré ne fait plus référence à un AnyType non défini et que le payload POST présenté peut être traité avec succès.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php, symfony
Domaine
api, backend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.