在Swagger中击败字段名称

时间:2017-02-06 20:50:41

标签: json swagger-2.0

所以我在网上做了一些搜索工作,并且能够弄清楚如何在swagger文档中使用enum标记来指定字段的可能值列表。但是,在我当前的API中,我需要的是一个潜在字段的列表,每个字段都有一个字符串值。

更确切地说,我有一个POST请求,它在请求体中发送JSON。作为此请求的一部分,用户需要发送单个ID字段。但是,我们接受多个类型的ID字段。所以请求看起来像这样:

{name:"name", product:"product", [FirstIdType, SecondIdType, ThirdIdType]:"ID Value"}

因此,我需要让用户提交一个具有名称,产品以及FirstIdType,SecondIdType或ThirdIdType之一的JSON。从技术上讲,要求请求中只有这三种ID类型中的一种,但如果在swagger文档中不可能,我真的不介意。在该字段的描述中注明它是好的。

另一个限制是我现在无法真正改变设计。该应用程序已经使用此设计构建,并且更改它不在我的手中。这意味着我不能只创建一个ID类型数组,然后选择其中一个。

以下是我招摇文件中的相关内容。需要更改的区域是ID字段。任何有关如何实现这一目标的想法或指示都将非常感激。

definitions:
  request_post:
  description: (post) request schema
  properties:
    name:
      type: string
    product:
      type: string
    Id:
      type: string

1 个答案:

答案 0 :(得分:1)

您可以标记所需的字段并默认设置其余变量,而不是定义路径上可选的字段。

http://swagger.io/specification/#parameterObject

  

required boolean确定此参数是否必需。如果   参数在“path”中,此属性是必需的及其值   必须是真的。否则,可以包含属性及其默认值   价值是假的。