我正在使用swagger来生成REST API的文档。但是,我在指定某些API调用的响应时遇到问题。
这是我的代码:
@GET
@Path("/self/activities")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Get all activities created by this user",
notes = "Returns the list that the authenticated user (JWT) has created",
response = Activity.class,
responseContainer = "List")
@ApiResponses(value = {
@ApiResponse(code = 400, response = ErrorResponse.Error.class, responseContainer = "List", message = "There was something wrong in the request and therefore could not be processed (headers, json syntax/content)"),
@ApiResponse(code = 500, response = ErrorResponse.Error.class, responseContainer = "List", message = "Unknown Internal server error")})
public void getActivities(...){...}
这是它生成的文档:
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Activity"
}
}
},
"400" : {
"description" : "There was something wrong in the request and therefore could not be processed (headers, json syntax/content)",
"schema" : {
"$ref" : "#/definitions/Error"
}
},
"500" : {
"description" : "Unknown Internal server error",
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
我不明白为什么错误响应不像200响应那样是'Array'类型。我想要的是所有的响应都具有与200个响应(带有项目的数组)相同的格式:
"500" : {
"description" : "Uknown interval server error",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Error"
}
}
}
感谢您的时间。
答案 0 :(得分:6)
@ApiResponse(code = 400, response = ErrorResponse.Error.class, responseContainer = "List", message = "There was something wrong in the request and therefore could not be processed (headers, json syntax/content)"),
@ApiResponse(code = 500, response = ErrorResponse.Error.class, responseContainer = "List", message = "Unknown Internal server error")})
400和500错误响应将返回ErrorResponse。不是数组。