2015-08-27 11 views
9

Ich mag eine ENUM in definitions als Teil meiner Parameterdefinitionen in einem Query-String definiert verwenden.Swagger: Wiederverwenden eine ENUM-Definition als Abfrageparameter

ich die Definition der Swagger Enum im definitions Teil meiner Swagger 2.0 Spec-Datei.

OperationType: 
    type: string 
    enum: 
    - registration 
    - renewal 

ich Verweise auf sie in anderen Definitionen erstellen:

Operation: 
    type: object 
    properties: 
    name: 
     type: string 
    type: 
     $ref: '#/definitions/OperationType' 

ich den schema Tag verwenden kann einen Verweis darauf zu machen, wenn der Parameter in: body ist, aber nicht, wenn es ist in: query

- name: operation 
     in: body 
     description: description 
     schema: 
     $ref: '#/definitions/OperationType' 

Ich habe versucht, schema: fallen zu lassen und eine Referenz in enum: stattdessen, aber kann es nicht funktionieren .

Antwort

1

Dies ist in OpenAPI 3.0 möglich. Alle Parameter verwenden jetzt eine schema und können die Schemata $ref als Erweiterung verwenden.

openapi: 3.0.0 
... 
paths: 
    /something: 
    get: 
     parameters: 
     - in: query 
      name: action 
      schema: 
      $ref: '#/components/schemas/OperationType' 
     ... 

components: 
    schemas: 
    OperationType: 
     type: string 
     enum: 
     - registration 
     - renewal 
10

Für Swagger 2.0 haben wir die Fähigkeit zu verwenden Modelldefinitionen für alles andere als body Parameter beschränkt. Der Abschnitt definitions wird zum Definieren eines Schemas verwendet, das auch zum Definieren von Nichtobjekten verwendet werden kann. Auf diese Definitionen kann jedoch nur zugegriffen werden, wenn das Schlüsselwort schema verwendet wird. Wie eingangs erwähnt, ist schema für Nicht-Body-Parameter nicht zugänglich und kann daher nicht von Abfrage- oder Pfadparametern verwendet werden, wodurch die Möglichkeit zur Wiederverwendung dieser Definitionen eingeschränkt wird.

Es gibt eine open feature request bittet um es in einer zukünftigen Version der Spezifikation behandelt werden.

+0

funktioniert es für Abfrageparameter? – Gobliins

+2

Nein, aber es sieht aus wie in 3.0 wird es möglich sein. – Ron

+0

@Ron Ich freue mich darauf. Scheint wirklich nützlich. –

Verwandte Themen