【问题标题】:How to get Swagger UI's Parameter to be Dropdown menu instead of Text Input如何让 Swagger UI 的参数成为下拉菜单而不是文本输入
【发布时间】:2014-08-15 10:12:18
【问题描述】:

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

【问题讨论】:

    标签: java rest jersey swagger


    【解决方案1】:

    关键是在@ApiParam注解中使用allowableValues

    演示结果:

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

    查看pet/findByStatus,它不是下拉菜单,但输入受限于 多选框。

    【讨论】:

    • 遗憾的是这些链接现在已经失效了。
    【解决方案2】:

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

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

    【讨论】:

    • 如何让 Swagger UI 的键成为下拉菜单而不是文本输入
    【解决方案3】:

    您可以直接使用枚举代替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;
        }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      相关资源
      最近更新 更多