我正在OpenAPI3(Swagger)中定义REST API。
我有一个具有POST的API,该POST使用了我在组件部分中定义的模型,如下所示:
post:
summary: "Used to add some data"
operationId: postMyData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MyModel'
required: true
components:
schemas:
MyModel:
type: object
properties:
SomeProperty1:
type: string
SomeProperty2:
type: string
SomeProperty3:
$ref: '#/components/schemas/SomeOtherModel'
SomeProperty4:
type: string
现在我有一个PATCH API调用,我只想用来更新MyModel的某些数据,例如SomeProperty1和SomeProperty4。
我应该为此PATCH操作定义一个新模型吗?像这样:
MyPATCHModel:
type: object
properties:
SomeProperty1:
type: string
SomeProperty4:
type: string
然后在PATCH操作的requestBody中使用这个新的MyPATCHModel?这里的标准做法是什么,因为我将有几个与此相似的API。
答案 0 :(得分:0)
检查combining JSON schemas上的文档。
例如,您可以使用PATCH方法中使用的两个属性来定义共享的MyModel
模式,然后再使用NewMyModel
来组合{{1 }}以及仅用于POST的属性。
检查this question以获取具体示例。