在我的“简化” API中,所有响应均从基本“响应”类派生(继承)。响应类由填充有元数据的头和包含用户所请求的核心数据的主体组成。布置响应(以JSON格式),使得所有元数据都位于第一个“层”上,并且body是这样一个称为“ body”的单个属性
response
|--metadata attribute 1 (string/int/object)
|--metadata attribute 2 (string/int/object)
|--body (object)
|--body attribute 1 (string/int/object)
|--body attribute 2 (string/int/object)
我尝试使用以下JSON来定义这种关系:
{
...
"definitions": {
"response": {
"allOf": [
{
"$ref": "#/definitions/response_header"
},
{
"properties": {
"body": {
"description": "The body of the response (not metadata)",
"schema": {
"$ref": "#/definitions/response_body"
}
}
}
}
]
},
"response_header": {
"type": "object",
"required": [
"result"
],
"properties": {
"result": {
"type": "string",
"description": "value of 'success', for a successful response, or 'error' if there is an error",
"enum": [
"error",
"success"
]
},
"message": {
"type": "string",
"description": "A suitable error message if something went wrong."
}
}
},
"response_body": {
"type": "object"
}
}
}
然后,我尝试通过创建从body / header继承的各种body / header类来创建不同的响应,然后创建由相关的header / body类组成的子响应类(在底部的源代码中显示)。但是,我确信这是做事的错误方法,或者我的实现是不正确的。我无法在swagger 2.0规范中找到继承的示例(如下所示),但是找到了composition的示例。
我可以肯定的是,这个“判别器”在很大程度上发挥了作用,但不确定我需要做什么。
慕仙森