microsoft / microsoft/OpenAPI.NET.OData

Enum return value schema is wrong

Offen
#674 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
240
Forks
70
Ø Merge
7 Std. 59 Min.
Gemergte PRs (30 T.)
13

Beschreibung

If a function returns Enum resulting schema is not wrapped but instead represented as enum itself.

Assemblies affected

Microsoft.OpenApi.OData 1.7.4

Steps to reproduce

I have a function that returns enum. It goes like this:

<Function Name="GetRemoteAccessStatus" IsBound="true">
      <ReturnType Type="RemoteAccessStatus" Nullable="false"/>
</Function>

<EnumType Name="RemoteAccessStatus">
      <Member Name="None" Value="0"/>
      <Member Name="Requested" Value="1"/>
      <Member Name="Active" Value="2"/>
</EnumType>
Expected result

In the resulting schema I want to see something like this:

      schema:
        type: object
        properties:
          value:
              anyOf:
                  - $ref: '#/components/schemas/RemoteAccessStatus'
Actual result

Actually I get (skipped value):

      schema:
        $ref: '#/components/schemas/Pbx.RemoteAccessStatus'
Additional information

I thinks the issue is in OpenApiResponseGenerator.cs where for collection and primitive types it wraps the responses but not for Enum

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

Beginnen Sie in OpenApiResponseGenerator.cs und reproduzieren Sie die Funktionsantwort anhand des bereitgestellten OData CSDL. Vergleichen Sie, wie Collection- und primitive Rückgabetypen mit dem enum path umschlossen werden, und überprüfen Sie anschließend, dass das generierte Schema ein object mit einer value-Eigenschaft verwendet, die auf RemoteAccessStatus verweist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, openapi
Bereich
api
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

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