我是 openapi 3.0.0 或 3.1.0 的新蜜蜂 我正在使用:
我正在尝试自动同步多个元素以实现简单的 REST API 描述。
对于 /orders 端点上的特定 POST 请求,我可以发送 2 个不同的正文:具有不同属性值的 SlimcollectVerify 和 SlimCollectPayUnsigned。这可以通过 oneOf 标签来实现,并且这是实用的。现在,根据所选的主体,对于相同的响应代码,响应将有所不同:“200”:
。第一个问题是:当我在命令描述正文中选择 SlimcollectVerify 或 SlimCollectPayUnsigned 时,将此信息同步到 200 的“响应描述部分”中。这意味着如果我选择“SlimcollectVerify”,我希望获得“SlimcollectVerify 的响应” ”,如果我选择“SlimCollectPayUnsigned”,则为“SlimCollectPayUnsigned 的响应”。 。第二个问题是:当我在命令描述中选择 SlimcollectVerify 或 SlimCollectPayUnsigned 时,我希望在示例 RequestBody
AND示例响应部分中同步此选择 界面示例如下:
我从网上搜索了示例,但不幸的是找不到任何示例。 预先感谢您的帮助
以下是组件:
components:
slimcollectVerify:
description: A representation of slimcollectVerify
allOf:
# <- - $ref: '#/components/schemas/CreateOrder'
- type: object
properties:
huntingSkillSCVerifiy:
type: string
description: The measured skill for Verify
default: lazy
example: adventurous
enum:
- clueless
- lazy
slimcollectPayUnsigned:
description: A representation of slimcollectPayUnsigned
allOf:
# <- - $ref: '#/components/schemas/CreateOrder'
- type: object
properties:
huntingSkillSCPayUnsigned:
type: string
description: The measured skill for PayUNsigned
default: lazy
example: adventurous
enum:
- clueless
- lazy
- adventurous
- aggressive
requestBodies:
CreateOrder:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/slimcollectVerify'
- $ref: '#/components/schemas/slimcollectPayUnsigned'
# <- discriminator:
# <- propertyName: createOrderItemType # <- property used to discriminate between response types
# <- required:
# <- - createOrderItemType # <- it must be required
description: Request Body of the create order
required: true
路径如下:
paths:
/orders:
post:
tags:
- pet
summary: Create an order
description: Command to create an order.
operationId: createOrder
responses:
'200':
description: successful operation
content:
"application/json":
schema:
oneOf:
- $ref: '#/components/schemas/slimcollectVerify'
- $ref: '#/components/schemas/slimcollectPayUnsigned'
discriminator:
propertyName: createOrderItemType # <- property used to discriminate between response types
required:
- createOrderItemType # <- it must be required
'405':
description: Invalid input
requestBody:
$ref: '#/components/requestBodies/CreateOrder'```
examples
映射键来指示类似的内容。这是我前几天为有类似请求的人创建的一个示例。
https://stackoverflow.com/a/77002583/8564731