2014-11-20 91 views
2

我想弄清楚如何使Swagger用户界面显示允许值的列表,而不是输入字段。Swagger用户界面参数列表,而不是文本输入

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

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

  1. 有一些命令调用allowableValues但据我了解,它在Swagger 2.0中不可用
  2. 我发现了enum命令,但无法使它适用于我。
  3. 我不知道我是否应该在parameters部分定义了允许使用此值列表,或definitions部分
  4. 我发现它确实有一个选择栏像我想要(GET/PET/findByTags)的petstore example,但就我所见到的“原始”JSON而言,它看起来像旧的Swagger格式。

最后,这里是我试图在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 

回答

2

扬鞭2.0已经发布了几个月前,和它周围的工具逐渐添加对规范本身的支持。

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

  1. 我不确定你在哪里得到allowableValues - 这不是Swagger 1.2和2.0的一部分。
  2. enum确实是用于将字段限制为特定值的属性名称。
  3. parameters用于定义操作参数(路径,查询,标题,正文和formData)。 definitions用于架构对象,它们通常是API使用的模型,但也可以表示数组和基元。可以在任何基元类型旁边使用enum来限制其定义,无论是在参数定义还是架构对象定义内。
  4. 目前,Swagger 2.0宠物商店示例位于此处 - http://petstore.swagger.wordnik.com/ui。在写这个答案的时候,那个样本中没有使用enum

至于查看swagger-ui中的有限值,对于Swagger 2.0,它尚未实现。如上所述,它仍在进行中。您可以直接在repository上打开关于它的问题。

根据有效性,上面粘贴的YAML看起来很好。

+0

感谢您的详细回复。所以我想我现在应该使用1.2规范,如果我想要一个功能齐全的工具集?我在几个地方看到了allowableValues,并且由于我认为我的代码是错误的,所以可能会将它置于背景之外。示例:http://stackoverflow.com/questions/23936140/enum-in-swagger和 http:// stackoverflow。com/questions/14761424/using-servicestacks-swagger-plugin-how-to-implement -a-string-field-with-a-list – DannyB 2014-11-21 11:27:07

+0

在swagger-ui和swagger-editor repos上发布的问题https:// github .com/swagger-api/swagger-ui/issues/736和https://github.com/swagger-api/swagger-editor/issues/256 – DannyB 2014-11-21 11:40:46

+1

工具一直在进步,所以你可能真的想要坚持2.0,特别是如果你手动编写你的规格。 1.2没有这样的编辑器。感谢您打开这些问题。至于'allowableValues',第一个只是java实现,转化为'enum',第二个完全无效。 – Ron 2014-11-21 14:04:42

相关问题