【问题标题】:Swagger editor dictionary parameter definitionSwagger 编辑器字典参数定义
【发布时间】:2017-06-11 13:44:13
【问题描述】:

我正在为如何在 swagger 编辑器中定义字典类型而苦苦挣扎。我的 POST 方法的一个参数称为“角色”,它的值是一个字典,其中键是电子邮件地址,值是整数。

【问题讨论】:

标签: swagger-2.0 swagger-editor


【解决方案1】:

Swagger 支持键是字符串的关联数组/哈希映射/字典。字典是通过使用 object 模式和 additionalProperties 关键字来定义的,该关键字指定键/值对的值类型。没有提到键类型,因为键总是字符串。

所以一个字符串到整数的字典可以定义为:

definitions:
  MyDictionary:
    type: object
    additionalProperties:
      type: integer


默认情况下,Swagger UI 3.x 和 Swagger Editor 3.x 将字典呈现为包含名为 additionalProp* 的属性:

如果您想要一个更有意义的示例,请将example 添加到您的字典架构中:

definitions:
  MyDictionary:
    type: object
    additionalProperties:
      type: integer
    example:
      apples: 5
      oranges: 7

【讨论】:

  • 不过,这并没有真正显示为 UI 中的任何内容。我在定义中添加了描述属性,但 Swagger UI 不显示它。它也没有显示它是字符串键和整数值的事实。例如,它只是说“MyDictionary”作为类型。第三个问题是,即使 'roles' 参数在 POST 方法的架构中按要求列出,但当我将其切换为引用此类型时,它上面不再有红色 *。
  • @Gargoyle:字典现在在 Swagger UI/Editor 3.x 中呈现。我更新了答案。不过,不确定“当我将其切换为引用此类型时,它上面不再有红色 *”是什么意思。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 2018-10-04
  • 1970-01-01
相关资源
最近更新 更多