誰もがswagggerバージョン2.0の「モデル」タブで可能な「enum」値を定義できましたか?ここの例: http://petstore.swagger.wordnik.com/#!/pet/addPet には 'status'プロパティのenumオプションがありますが、その例ではswaggerのバージョン1.0を使用しています(swaggerによる) JSONオブジェクトで定義されたバージョン)。私はバージョン2.0でも同じことをしようとしましたが、運がありません。ドキュメントがこのために正しいかどうかはわかりません。
これに関するヒントはありますか?
「enum」は次のように機能します。
{
"in": "query",
"name": "sample",
"description": "a sample parameter with an enum value",
"type": "string",
"enum": [ "1", "2"],
"required": true
}
ご覧のとおり、文字列型のsample
と呼ばれるクエリパラメータがあり、2つの可能な値を示す列挙型があります。この場合、サンプルではパラメーターが必須であることが示されているため、UIにはオプションとして空の値は表示されません。
最小限の作業サンプルについては、これを試してください:
{
"swagger": "2.0",
"info": {
"title": "title",
"description": "descriptor",
"version": "0.1"
},
"paths": {
"/sample": {
"post": {
"description": "sample",
"parameters": [
{
"in": "query",
"name": "sample",
"description": "a sample parameter with an enum value",
"type": "string",
"enum": [
"1",
"2"
],
"required": true
}
],
"responses": {
"200": {
"description": "Successful request."
}
}
}
}
}
}
ローカルでテストするには、javascriptで変数(たとえばspec
)を宣言し、SwaggerUiオブジェクトに渡すことができます。
var spec = { ... };
window.swaggerUi = new SwaggerUi({
url: url,
spec: spec,
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
...
この場合、url
パラメーターは無視されます。
最終的に、出力は次のようになります。
私はこの方法で大丈夫でしたが、ドロップダウンを作成した各パラメーターについて以下に添付されている画像で見ることができます:
私が達成したいのは、以下の画像のように、パラメーターに利用可能な列挙型がリストされたニースモデル/モデルスキーマタブです。これはSwaggerの最新バージョンで可能ですか?
YAML構文でこれを更新する:
in: query
name: sample
description: a sample parameter with an enum value
type: string
enum:
- 1
- 2
required: true