openapi-generators / openapi-generators/openapi-python-client

Unable to parse schema definition with anyOf/allOf within one another

Offen
#868 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
2k
Forks
293
Ø Merge
34 Min.
Gemergte PRs (30 T.)
1

Beschreibung

Describe the bug

Schema definition in components of combined schemas are failing to be parsed, with the following error:

Unable to parse this part of your OpenAPI document: : Invalid property in union /components/schemas/composite_object

Schema(title=None, multipleOf=None, maximum=None, exclusiveMaximum=None, minimum=None, exclusiveMinimum=None, maxLength=None, minLength=None, pattern=None, maxItems=None, minItems=None, uniqueItems=None, maxProperties=None, minProperties=None, required=None, enum=None, type=None, allOf=[Reference(ref='#/components/schemas/simple_object1'), Reference(ref='#/components/schemas/simple_object2')], oneOf=[], anyOf=[], schema_not=None, items=None, properties=None, additionalProperties=None, description=None, schema_format=None, default=None, nullable=False, discriminator=None, readOnly=None, writeOnly=None, xml=None, externalDocs=None, example=None, deprecated=None)

Surprisingly, combined schemas are correctly parsed when defined in paths : this is the uncommented part in the gist.

OpenAPI Spec File
A link to an OpenAPI document which produces this issue. Ideally, write a minimal reproduction only containing the problematic pieces.

Desktop (please complete the following information):

  • OS: Amazon Linux 2
  • Python Version: 3.11.5
  • openapi-python-client version 0.15.2

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Fehler mit dem verlinkten OpenAPI-gist, wobei du dich auf Schemas in components konzentrierst, die anyOf/allOf verschachteln, und vergleiche diesen Pfad anschließend mit der funktionierenden Schema-Behandlung unter paths. Verfolge die Parser-Einstiegspunkte für beide Fälle; abgeschlossen ist die Aufgabe, wenn das Component-Schema geparst wird und die Client-Generierung ohne den invalid-property-Fehler erfolgreich ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
openapi, python
Bereich
api, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.