Я использую OpenAPI 3.0 для описания API, в котором каждый ресурс имеет слегка отличающуюся схему в зависимости от его работы. По сути, некоторые свойства доступны для редактирования и / или требуются в зависимости от того, является ли это запрос POST или PUT.
Есть ли лучший способ сделать это, кроме указания схемы для каждой такой операции? (где field2 читается только в PUT)
В идеале я хотел бы указать схему (то есть все свойства) в одном месте, а затем переопределить некоторые свойства (например, readOnly) для каждой операции.
{
"paths":{
"/users":{
"put":{
"responses":{
"200":{
"$ref":"#/components/schemas/users_put"
}
}
},
"post":{
"responses":{
"200":{
"$ref":"#/components/schemas/users_post"
}
}
}
}
},
"components":{
"schemas":{
"users_post":{
"properties":{
"field1":{
"readOnly":true,
"type":"integer"
},
"field2":{
"type":"string"
}
}
},
"users_put":{
"properties":{
"field1":{
"readOnly":true,
"type":"integer"
},
"field2":{
"type":"string",
"readOnly":true
}
}
}
}
}
}