我正在使用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,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","items" : { "$ref" : "#/definitions/Error" } } }
谢谢你的时间.
解决方法
@ApiResponse(code = 400,message = "Unknown Internal server error")})
400和500错误响应将返回ErrorResponse.不是数组.