您可以向参数、属性和对象添加示例,使您的 Web 服务的 OpenAPI 规范更清晰。示例可以被以某种方式处理您的 API 的工具和库读取。例如,API 模拟工具可以使用示例值来生成模拟请求。您可以为对象、单个属性和操作参数指定示例。要指定示例,请使用 example
或 examples
键。请参阅下面的详细信息。
Swagger UI 用户须知: 自 Swagger UI 3.23.0 和 Swagger Editor 3.6.31 起,支持多个 examples
。
注意: 不要将示例值与默认值混淆。示例说明值的预期值。默认值是客户端未提供值时服务器使用的值。
参数示例
这是参数值的示例
enum : [ approved , pending , closed , new ]
example : approved # Example of a parameter value
参数的多个示例
examples : # Multiple examples
summary : A sample limit value # Optional description
value : 50 # Example value
summary : A sample limit value # Optional description
如您所见,每个示例都有一个不同的键名。此外,在上面的代码中,我们使用了带有描述的可选 summary
键。注意: 您指定的示例值应与参数数据类型匹配。
请求和响应体示例
这是请求体中 example
关键字的示例
schema : # Request body contents
请注意,在上面的代码中,example
是 schema
的子项。如果 schema
引用 components
部分中定义的某个对象,那么您应该使 example
成为媒体类型关键字的子项
application/json : # Media type
schema : # Request body contents
$ref : " #/components/schemas/User " # Reference to an object
example : # Child of media type because we use $ref above
# Properties of a referenced object
这是因为 $ref
会覆盖其旁边的所有兄弟项。如果需要,您可以使用多个示例
application/json : # Media type
schema : # Request body contents
$ref : " #/components/schemas/User " # Reference to an object
examples : # Child of media type
这是响应体中 example
的示例
description : A user object.
$ref : " #/components/schemas/User " # Reference to an object
# Properties of the referenced object
响应体中的多个示例
description : A user object.
$ref : " #/components/schemas/User " # Reference to an object
注意: 响应和请求体中的示例是自由格式的,但应与主体架构兼容。
对象和属性示例
您还可以在 components
部分中为对象和单个属性指定示例。
example : 1 # Property example
example : New order # Property example
example : # Object-level example
请注意,架构和属性支持单个 example
,但不支持多个 examples
。
数组示例
您可以添加单个数组项的示例
或包含多个项的数组级示例
如果数组包含对象,您可以按如下方式指定多项示例
请注意,数组和数组项支持单个 example
,但不支持多个 examples
。
XML 和 HTML 数据示例
要描述无法以 JSON 或 YAML 格式表示的示例值,请将其指定为字符串
$ref : " #/components/schemas/xml "
summary : A sample XML response
value : " <objects><object><id>1</id><name>new</name></object><object><id>2</id></object></objects> "
summary : A list containing two items
value : " <html><body><ul><li>item 1</li><li>item 2</li></ul></body></html> "
您可以在此 Stack Overflow 帖子中找到有关在 YAML 中编写多行字符串的信息:https://stackoverflow.com/questions/3790454/in-yaml-how-do-i-break-a-string-over-multiple-lines 。
外部示例
如果由于某种原因无法将示例值插入到您的规范中,例如,它既不符合 YAML 也不符合 JSON,您可以使用 externalValue
关键字来指定示例值的 URL。该 URL 应指向包含字面示例内容(例如,对象、文件或图像)的资源
$ref : " #/components/schemas/MyObject "
externalValue : " http://example.com/examples/object-example.json "
externalValue : " http://example.com/examples/example.pdf "
重用示例
您可以在规范的 components/examples
部分中定义常用示例,然后在各种参数描述、请求和响应体描述、对象和属性中重复使用它们
$ref : ' #/components/schemas/MyObject '
$ref : ' #/components/examples/objectExample '
没有找到您要找的内容?咨询社区 发现错误?请告知我们