Swagger UI参数作为列表而不是文本输入

时间:2014-11-20 22:16:26

标签: swagger swagger-ui

我试图找出如何让Swagger UI显示允许值而不是输入字段的列表。

到目前为止,我能够让自己对不同版本的Swagger和文档感到困惑。我不确定哪个(1.2,2.0,YAML,JSON ......)

到目前为止,这就是我所知道的:

  1. 有一些名为allowableValues的命令但据我所知,它在Swagger 2.0中不可用
  2. 我找到了enum命令,但无法让它对我有效。
  3. 我不确定是否应在parameters部分或definitions部分
  4. 中定义此允许值列表
  5. 我找到了petstore example,它确实有一个像我想要的选择字段(GET / pet / findByTags),但据我所知," raw" JSON,它看起来像旧的Swagger格式。
  6. 最后,这是我在this Swagger editor尝试的代码:

    swagger: '2.0'
    host: asd.com
    schemes:
      - http
    info:
      version: "1.0.0"
      title: test
    
    paths:
      /users:
        get:
          parameters:
            - name: status
              in: query
              type: string
              enum:
                - online
                - offline
    
          responses:
            "200":
              description: Nice
    

1 个答案:

答案 0 :(得分:2)

几个月前,Swagger 2.0已经发布,围绕它的工具逐渐增加了对规范本身的支持。

规范格式本身是JSON,但编辑器工具(2.0中的新增功能)允许您使用YAML进行更人性化的编辑。

  1. 我不知道你在哪里allowableValues - 这不是Swagger 1.2和2.0的一部分。
  2. enum确实是用于将字段限制为特定值的属性名称。
  3. parameters用于定义操作参数(path,query,header,body和formData)。 definitions用于模式对象,模式对象通常是API使用的模型,但也可以表示数组和基元。可以在任何基本类型旁边使用enum来限制其定义,无论是在参数定义还是模式对象定义中。
  4. 目前,Swagger 2.0宠物商店示例位于此处 - http://petstore.swagger.wordnik.com/ui。在撰写本答案时,该样本中没有使用enum
  5. 至于在swagger-ui中查看有限值,对于Swagger 2.0,它还没有实现。如上所述,它仍在进行中。您可以直接在repository上打开相关问题。

    就有效性而言,您上面粘贴的YAML看起来很好。