Swagger Editor showing schema error: is not exactly one from definitions
Swagger Editor showing schema error: is not exactly one from definitions
Swagger 编辑器在输入中显示以下错误 JSON。
路径中的架构错误。/accord/stakeholderMaster/stakeholderLocationDetails。get.parameters[0]
不完全是 <#/definitions/parameter>、<#/definitions/jsonReference>
这是我的 JSON,
{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "Title",
"description": "description"
},
"basePath": "/api",
"paths": {
"/accord/stakeholderMaster/stakeholderLocationDetails": {
"get": {
"description": "Returns stakeholder location details",
"operationId": "findMovies",
"produces": [
"application/json"
],
"parameters": [
{
"in": "body",
"name": "stakeHolderId",
"description": "Stakeholder ID",
"required": true,
"type": "integer",
"schema": {
"$ref": "#/definitions/stakeHolder"
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"$ref": "#/definitions/stakeHolder"
}
}
}
}
}
},
"definitions": {
"stakeHolder": {
"type": "object",
"properties": {
"stakeHolderId": {
"type": "integer"
},
"chartTerm": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"chartContent": {
"type": "object",
"properties": {
"countSeriesOne": {
"type": "array",
"items": {
"type": "integer"
}
},
"nameSeriesOne": {
"type": "array",
"items": {
"type": "string"
}
},
"chartLimit": {
"type": "integer"
},
"receivableChartTerm": {
"type": "integer"
},
"payableChartTerm": {
"type": "integer"
},
"chartTerm": {
"type": "integer"
},
"urlList": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
该错误是由于参数定义中 in
、type
和 schema
关键字的不正确组合引起的。
首先,你的操作是GET但是有一个请求体("in": "body"
参数)。 GET does not have defined semantics.
中的请求正文
我想 stakeHolderId
应该是一个路径参数:
GET /.../stakeholderLocationDetails/{stakeHolderId}
或查询参数:
GET /.../stakeholderLocationDetails?stakeHolderId=12345
所以参数应该是"in": "path"
或"in": "query"
而不是"in": "body"
。如果是路径参数,还要更改路径以包含参数名称:"/accord/stakeholderMaster/stakeholderLocationDetails/{stakeHolderId}"
。如果是查询参数,请保持路径不变(查询参数不包含在路径中)。
同时从参数定义中删除 schema
。路径和查询参数只使用 type
; schema
关键字仅用于正文参数。
更多信息:
http://swagger.io/docs/specification/describing-parameters/
Swagger 编辑器在输入中显示以下错误 JSON。
路径中的架构错误。/accord/stakeholderMaster/stakeholderLocationDetails。get.parameters[0] 不完全是 <#/definitions/parameter>、<#/definitions/jsonReference>
这是我的 JSON,
{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "Title",
"description": "description"
},
"basePath": "/api",
"paths": {
"/accord/stakeholderMaster/stakeholderLocationDetails": {
"get": {
"description": "Returns stakeholder location details",
"operationId": "findMovies",
"produces": [
"application/json"
],
"parameters": [
{
"in": "body",
"name": "stakeHolderId",
"description": "Stakeholder ID",
"required": true,
"type": "integer",
"schema": {
"$ref": "#/definitions/stakeHolder"
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"$ref": "#/definitions/stakeHolder"
}
}
}
}
}
},
"definitions": {
"stakeHolder": {
"type": "object",
"properties": {
"stakeHolderId": {
"type": "integer"
},
"chartTerm": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"chartContent": {
"type": "object",
"properties": {
"countSeriesOne": {
"type": "array",
"items": {
"type": "integer"
}
},
"nameSeriesOne": {
"type": "array",
"items": {
"type": "string"
}
},
"chartLimit": {
"type": "integer"
},
"receivableChartTerm": {
"type": "integer"
},
"payableChartTerm": {
"type": "integer"
},
"chartTerm": {
"type": "integer"
},
"urlList": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
该错误是由于参数定义中 in
、type
和 schema
关键字的不正确组合引起的。
首先,你的操作是GET但是有一个请求体("in": "body"
参数)。 GET does not have defined semantics.
我想 stakeHolderId
应该是一个路径参数:
GET /.../stakeholderLocationDetails/{stakeHolderId}
或查询参数:
GET /.../stakeholderLocationDetails?stakeHolderId=12345
所以参数应该是"in": "path"
或"in": "query"
而不是"in": "body"
。如果是路径参数,还要更改路径以包含参数名称:"/accord/stakeholderMaster/stakeholderLocationDetails/{stakeHolderId}"
。如果是查询参数,请保持路径不变(查询参数不包含在路径中)。
同时从参数定义中删除 schema
。路径和查询参数只使用 type
; schema
关键字仅用于正文参数。
更多信息: http://swagger.io/docs/specification/describing-parameters/