Forum Discussion

vijendra_bhat's avatar
vijendra_bhat
New Contributor
5 years ago

How to Inject dynamic object in response class of @ApiOperation for Swagger

Am developing a project to handle CRUD operation for 50+ entities using Spring boot REST api with Swagger documentation.

For all the CRUD operation i have a common response which can handle GET,UPDATE,POST and DELETE.

Am using @ApiOperation as shown below for swagger documentation, Below is just an example for Client entity,

 

 

@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 is as shown,

 

InternalApiResponse.class

{

   private Status status;

   private Error error;

   private Object entityObject;

}

 

in the above class, entityObject needs to be dynamically considered based on input entity (ex: @ModelAttribute Client client)

Swagger UI is as shown : 

 

From Java side i can inject required object in response at run time, But how i can inject the required object to InternalApiResponse for Swagger @ApiOperation, so that can i see the Api response with particular entity details in Swagger UI...Please help

No RepliesBe the first to reply