所以我在网上做了一些搜索工作,并且能够弄清楚如何在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
答案 0 :(得分:1)
您可以标记所需的字段并默认设置其余变量,而不是定义路径上可选的字段。
http://swagger.io/specification/#parameterObject
required boolean确定此参数是否必需。如果 参数在“path”中,此属性是必需的及其值 必须是真的。否则,可以包含属性及其默认值 价值是假的。