SWaggerを使用してRESTApiを表示しています。APIの1つのパラメーターが入力として文字列を受け取り、それを列挙値に変換します。ユーザーが列挙値内の文字列値のみを選択できるように、テキスト入力フィールドを使用する代わりに、SwaggerUIにドロップダウンメニューを表示する方法はありますか?.
重要なのは、@ApiParam
アノテーションで allowableValues
を使用することです。
結果を示すデモ:
http://petstore.swagger.io/#!/pet/findPetsByStatus
pet/findByStatus
をチェックしてください。これはドロップダウンではありませんが、複数選択ボックスでの入力は制限されています。
次のSwaggerコードを使用してドロップダウンを表示できます。 enumを使用する必要があります。例えば性別を入力として使用する場合は、3つの値が考えられます。
- 男性、女性、その他
-name: "gender"
in: "query"
type: "string"
enum: [ "male", "female", "other"]
description: "Enter user gender here."
required: true
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;
}
}