2015-08-27 20 views
9

Bir sorgu dizesinde parametre tanımlarımın bir parçası olarak definitions'da tanımlanan bir enum kullanmak istiyorum.Swagger: Enum tanımını sorgu parametresi olarak yeniden kullanma

Swagger 2.0 teknik dökümanımın definitions bölümündeki Swagger Enum öğesini tanımlıyorum.

OperationType: 
    type: string 
    enum: 
    - registration 
    - renewal 
diğer tanımlarında buna referanslar oluşturabilirsiniz

:

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

Ben parametre in: body olduğunda ona bir başvuru yapmak için schema etiketi kullanabilirsiniz, ama bu değil ne zaman in: query

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

schema: dosyasını düşürmeyi ve bunun yerine enum: numaralı başvuruda bulunmayı denedim, ancak işe yaramayabilir .

cevap

1

Bu OpenAPI 3.0'da mümkündür. Tüm parametreler artık bir schema kullanıyor ve ek olarak, şemaları $ref yapabilir.

10

Swagger 2.0 için, model tanımlarını body parametresiyle sınırlı tuttuk. definitions bölümü, nesne olmayan nesneleri tanımlamak için de kullanılabilen şemayı tanımlamak için kullanılır. Ancak, bu tanımlara yalnızca schema anahtar sözcüğünün kullanıldığı yerlerde erişilebilir. Başlangıçta belirtildiği gibi, vücut dışı parametreler için schema erişilemez ve bu nedenle, sorgu veya yol parametreleri tarafından kullanılamaz, böylece bu tanımları yeniden kullanma yeteneği sınırlanır.

Spesifikasyonların gelecek sürümlerinde ele alınmasını isteyen bir open feature request var.

+0

Sorgu parametresi çalışıyor musunuz? – Gobliins

+2

Hayır, ama 3,0'da görülebilecek gibi görünüyor. – Ron

+0

@Ron İleriye dönük. Gerçekten faydalı görünüyor. –