我正在尝试将 swagger 与 java 一起使用。 使用 NSwag studio,我可以生成所有端点,除了返回对象列表的端点之外。 这是我在 Controller 中的操作:
@ApiOperation(value = "getAll", nickname = "getAll", responseContainer = "List", response = DiakEntity.class)
@GetMapping("/api/diakok")
@ResponseBody
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_CLIENT')")
public List<DiakEntity> GetDiakok() throws Exception
{
ServiceObjectResponse<List<DiakEntity>> request = _diakService.getAll();
if(!request.getIsSuccess())
{
throw new Exception(request.getMessage());
}
return request.getObject();
}
我正在使用 swagger-annotations 1.5.23、springfox-swagger-ui 2.9.2、springfox-swagger2 2.9.2。 如果我从 postman 测试它的工作原理。
也尝试过这样的:
@ApiOperation(value = "getAll", nickname = "getAll")
@ApiResponse(code = 200, responseContainer="List", response=DiakEntity.class, message = "Gets all diak objects")
@GetMapping("/api/diakok")
@ResponseBody
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_CLIENT')")
public ResponseEntity<List<DiakEntity>> GetDiakok() throws Exception
{
ServiceObjectResponse<List<DiakEntity>> request = _diakService.getAll();
if(!request.getIsSuccess())
{
throw new Exception(request.getMessage());
}
return new ResponseEntity<>(request.getObject(), HttpStatus.OK);
}
谢谢
最佳答案
请尝试使用以下 swagger 注释。
@ApiOperation(value = "getAll", nickname = "getAll")
@ApiResponse(code = 200, responseContainer="List", response=DiakEntity.class)
关于Java Swagger 不生成端点响应类型为 List<T> 的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59237890/