Разрабатываю проект для обработки операции CRUD для 50+ сущностей, используя Spring boot REST api с документацией Swagger.
Для всех операций CRUD у меня есть общий ответ, который может обрабатывать GET
, UPDATE
, POST
и DELETE
.
Я использую @ApiOperation
, как показано ниже для документации swagger. Ниже приведен только пример для объекта Client,
@ApiOperation(value = "Get Client details API", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE,
httpMethod = "GET", response = InternalApiResponse.class)
@ApiResponses(value = { @ApiResponse(code = HttpURLConnection.HTTP_OK, message = HttpStatusMessages.MESSAGE_200),
@ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = HttpStatusMessages.MESSAGE_401),
@ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = HttpStatusMessages.MESSAGE_403),
@ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = HttpStatusMessages.MESSAGE_404) })
@RequestMapping(value = "/clients", headers = "Accept=application/json", method = RequestMethod.GET)
public ResponseEntity<InternalApiResponse> getClients(@ModelAttribute RequestParams requestParams,
@ModelAttribute Client client) throws InternalApiException {
}
InternalApiResponse.class имеет вид показано,
InternalApiResponse.class
{
private Status status;
private Error error;
private Object entityObject;
}
в вышеприведенном классе, entityObject необходимо динамически рассматривать на основе входной сущности (например: @ModelAttribute
клиент-клиент)
Swagger UI выглядит так: Пример снимка экрана
Со стороны Java я могу ввести требуемый объект в ответ во время выполнения, но как я могу ввести требуемый объект в InternalApiResponse для Swagger @ApiOperation
, поэтому что я могу увидеть ответ API с конкретными деталями сущности в Swagger UI ... Пожалуйста, помогите