在 Swagger 中枚举字段名称
Enummerate Field Names In Swagger
所以我在网上做了一些搜索,并且已经能够弄清楚如何在 swagger 文档中使用 enum
标记来指定字段的可能值列表。但是,在我当前的 API 中,我需要的是有一个 潜在字段列表 ,每个字段都有一个字符串值。
更准确地说,我有一个 POST 请求在请求正文中发送 JSON。作为此请求的一部分,用户需要发送一个 ID 字段。但是,我们接受多个 类型 的 ID 字段。所以请求看起来像这样:
{name:"name", product:"product", [FirstIdType, SecondIdType, ThirdIdType]:"ID Value"}
所以我需要让用户提交 JSON,其中包含名称、产品以及 FirstIdType、SecondIdType 或 ThirdIdType 之一。从技术上讲,要求在请求中恰好包含这三种 ID 类型中的一种,但我真的不介意在 swagger 文档中这是否不可能。在字段的描述中注明它很好。
另一个限制是我目前无法真正更改设计。该应用程序已经使用此设计构建,更改它不在我的手中。这意味着我不能只创建一个 ID 类型数组然后选择其中一个。
这是我的 swagger 文档中的相关内容。需要更改的区域是 ID 字段。任何关于如何推进这一点的想法或指示都将不胜感激。
definitions:
request_post:
description: (post) request schema
properties:
name:
type: string
product:
type: string
Id:
type: string
您可以标记必需的字段并默认设置其余变量,而不是定义路径中可以出现的可选字段。
http://swagger.io/specification/#parameterObject
required boolean Determines whether this parameter is mandatory. If
the parameter is in "path", this property is required and its value
MUST be true. Otherwise, the property MAY be included and its default
value is false.
所以我在网上做了一些搜索,并且已经能够弄清楚如何在 swagger 文档中使用 enum
标记来指定字段的可能值列表。但是,在我当前的 API 中,我需要的是有一个 潜在字段列表 ,每个字段都有一个字符串值。
更准确地说,我有一个 POST 请求在请求正文中发送 JSON。作为此请求的一部分,用户需要发送一个 ID 字段。但是,我们接受多个 类型 的 ID 字段。所以请求看起来像这样:
{name:"name", product:"product", [FirstIdType, SecondIdType, ThirdIdType]:"ID Value"}
所以我需要让用户提交 JSON,其中包含名称、产品以及 FirstIdType、SecondIdType 或 ThirdIdType 之一。从技术上讲,要求在请求中恰好包含这三种 ID 类型中的一种,但我真的不介意在 swagger 文档中这是否不可能。在字段的描述中注明它很好。
另一个限制是我目前无法真正更改设计。该应用程序已经使用此设计构建,更改它不在我的手中。这意味着我不能只创建一个 ID 类型数组然后选择其中一个。
这是我的 swagger 文档中的相关内容。需要更改的区域是 ID 字段。任何关于如何推进这一点的想法或指示都将不胜感激。
definitions:
request_post:
description: (post) request schema
properties:
name:
type: string
product:
type: string
Id:
type: string
您可以标记必需的字段并默认设置其余变量,而不是定义路径中可以出现的可选字段。
http://swagger.io/specification/#parameterObject
required boolean Determines whether this parameter is mandatory. If the parameter is in "path", this property is required and its value MUST be true. Otherwise, the property MAY be included and its default value is false.