问题 如何将Swagger UI的参数设置为下拉菜单而不是文本输入


我使用swagger来显示我的RESTApi,API的一个参数将字符串作为输入并将其转换为枚举值。有没有办法在Swagger UI上显示下拉菜单而不是文本输入字段,以便用户只能在枚举值中选择字符串值。


9842
2018-06-25 01:03


起源



答案:


关键是要使用 allowableValues 在里面 @ApiParam 注解。

演示显示结果:

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

查看 pet/findByStatus,这不是一个下拉菜单,但输入是有限的 多选框。


2
2017-10-30 07:33



可悲的是,这些链接现已死亡。 - aradil


答案:


关键是要使用 allowableValues 在里面 @ApiParam 注解。

演示显示结果:

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

查看 pet/findByStatus,这不是一个下拉菜单,但输入是有限的 多选框。


2
2017-10-30 07:33



可悲的是,这些链接现已死亡。 - aradil


您可以使用以下swagger代码显示下拉列表。你必须使用 枚举。 例如如果你想把性别作为输入,那么可以有三个可能的值

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

5
2018-03-24 12:07



如何获得Swagger UI的关键是下拉菜单而不是文本输入 - Vinod Kumar Marupu


您可以直接使用enum而不是String参数作为API参数。

@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;
    }

}


4
2017-08-04 10:29