Как внедрить объект Dynami c в класс ответа @ApiOperation для Swagger - PullRequest
0 голосов
/ 04 февраля 2020

Разрабатываю проект для обработки операции 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 ... Пожалуйста, помогите

...