web-dev-qa-db-ja.com

SwaggerUIパラメーターをテキスト入力ではなくドロップダウンメニューにする方法

SWaggerを使用してRESTApiを表示しています。APIの1つのパラメーターが入力として文字列を受け取り、それを列挙値に変換します。ユーザーが列挙値内の文字列値のみを選択できるように、テキスト入力フィールドを使用する代わりに、SwaggerUIにドロップダウンメニューを表示する方法はありますか?.

14
mirage1s7

重要なのは、@ApiParamアノテーションで allowableValues を使用することです。

結果を示すデモ:

http://petstore.swagger.io/#!/pet/findPetsByStatus

pet/findByStatusをチェックしてください。これはドロップダウンではありませんが、複数選択ボックスでの入力は制限されています。

4
localhost

次のSwaggerコードを使用してドロップダウンを表示できます。 enumを使用する必要があります。例えば性別を入力として使用する場合は、3つの値が考えられます。

  • 男性、女性、その他
-name: "gender"
          in: "query"
          type: "string"
          enum: [ "male", "female", "other"]
          description: "Enter user gender here."
          required: true
9
Kundan

APIパラメーターとしてStringパラメーターの代わりにenumを直接使用できます。

@RequestMapping(value = "/test", method = RequestMethod.POST)
public void test(EnumTest enum) {
    // body
}

EnumTest.Java

public enum EnumTest {

    One("One"),
    Two("Two");

    private String str;

    EnumTest(String str){
       this.str = str;
    }

    public String getStr() {
       return str;
    }

}

6
Sagar Vaghela