2015-04-29 31 views
5

Referans vermek istediğim birden çok parametrem var, ancak bunları tek tek belirtmek istemiyorum.Bir parametre seti tanımlamak ve referans vermek mümkün mü?

{ 
    ... 
    "paths": { 
     "/stuff": { 
      "get": { 
       "description": "Gets stuff", 
       "operationId": "getStuff", 
       "parameters": { 
        "$ref": "#/definitions/set1" 
       } 
      } 
     } 
    }, 
    "parameters": { 
     "a": { 
      "name": "a", 
      "in": "query", 
      "description": "Param A", 
      "required": false, 
      "type": "string" 
     }, 
     "b": { 
      "name": "b", 
      "in": "query", 
      "description": "Param B", 
      "required": false, 
      "type": "string" 
     } 
    }, 
    "definitions": { 
     "set1": [ 
      { 
       "$ref": "#/parameters/a" 
      }, 
      { 
       "$ref": "#/parameters/b" 
      } 
     ], 
     "set2": ... 
    } 
} 

bu mümkün mü yoksa her istek için, ben set1 gibi her parametreyi belirtmek zorundayım:

Bu parçacık parametreleri ortaya yapmaz?

+0

Olası yinelenen: Bireysel çalışma için

, sen olarak tanımlamak istiyorum/27005105/swagger-openapi-use-ref-to-pass-a-yeniden-tanımlanabilir-parametre) – robertwbradford

+0

@robertwbradford bunu düşünmüyor, daha ziyade benim soru, başvurulan soruya bir cevap gibi görünüyor. Bir sete başvurmakla ilgili. – Archimedix

+0

Şimdi anlıyorum. Herkes, siz olduğun gibi ... :) – robertwbradford

cevap

2

Gerçekten de bu geçerli bir tanım değildir ve önerdiğiniz gibi, her bir parametreyi genel olanı referans alarak ayrı ayrı belirtmeniz gerekir. Parametreleriniz belirli bir yol altındaki tüm işlemler için paylaşılıyorsa, bunları yol düzeyinde tanımlayabilirsiniz ve tüm işlemlere uygulanacaklardır. [- yeniden kullanılabilir tanımlı parametre geçmesine kullanım $ ref Swagger/OpenAPI] (https://stackoverflow.com/questions

"paths": { 
    "/stuff": { 
    "get": { 
     "description": "Gets stuff", 
     "operationId": "getStuff", 
     "parameters": [ 
     { 
      "$ref": "#/parameters/a" 
     }, 
     { 
      "$ref": "#/parameters/b" 
     } 
     ] 
    } 
    } 
} 
ait
+3

Bu yöntem, HTTP verb/yöntemine ve bu yöntemleri paylaşan birden çok varlığın yollarına bağlı olan farklı parametre kümeleri olduğum için desteklenmediği için çok kötü. Bununla birlikte, Swagger speklerine göre çalışması gereken örnekte "get" ile aynı düzeyde bir "parameters" dizisini tanımlamayı denedim, ancak [swagger-ui] 'de (https://github.com/swagger-api/swagger-ui) "get" in altında tanımlanmadıkça parametreler görünmez. Bir fikrin neden? – Archimedix

+0

Hm, [bunun için düzeltme] gibi görünüyor (https://github.com/swagger-api/swagger-ui/issues/617) [üst düzey params için düzeltme] ile ilgili (https: // github [geliştir-2.0 'dalında .com/swagger-api/swagger-ui/issues/621) (https://github.com/swagger-api/swagger-ui/commit/21d8a89316ffbb8e5156f1ba1bdcd91a2140dbcf), ancak görünüşe göre Daha önce dün teslim ettiğim "usta" ile birleştirildi. Garip. – Archimedix

+0

Birkaç gün içinde master'da mevcut olmalı, ancak evet, şu an için develop_2.0 şubesini kullanabilirsiniz. – Ron