swagger3 @schema oneof用法
时间: 2024-01-27 11:03:49 浏览: 28
Swagger 3 中的 `oneOf` 关键字可以用于指定一个模式,该模式必须符合其中一个指定的模式中的一种。比如说,假设你要定义一个 API,它支持两种不同的请求体格式,一种是 JSON 格式,一种是 XML 格式。你可以使用 `oneOf` 来定义这个 API 的请求体。
下面是一个使用 `oneOf` 的示例:
```yaml
openapi: 3.0.0
components:
schemas:
RequestBody:
type: object
oneOf:
- $ref: "#/components/schemas/JsonRequestBody"
- $ref: "#/components/schemas/XmlRequestBody"
JsonRequestBody:
type: object
properties:
id:
type: integer
name:
type: string
XmlRequestBody:
type: object
properties:
Id:
type: integer
Name:
type: string
```
在上面的示例中,我们定义了一个 `RequestBody` 模式,它具有一个 `oneOf` 属性,该属性包含两个引用:`JsonRequestBody` 和 `XmlRequestBody`。这意味着 `RequestBody` 只能与这两种请求体格式中的一种对应。
`JsonRequestBody` 和 `XmlRequestBody` 是具有不同属性的对象模式。如果请求体是 JSON 格式,它必须符合 `JsonRequestBody` 模式的属性,否则它必须符合 `XmlRequestBody` 模式的属性。
希望这可以帮助你理解如何在 Swagger 3 中使用 `oneOf`。