I have created a REST API for user registration using Spring Boot in which I for response I'm using GenericResponse class along with ResponseEntity to manipulate the response but I'm facing[org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]
error
@PostMapping("/register") public ResponseEntity<GenericResponse<String>> registerUser(@RequestBody @NonNull @NotNull User user) { try { logger.info("Initial user registration request body: {}", user); userService.registerUser(user); GenericResponse<String> genericResponse = new GenericResponseBuilder<String>() .setMessage(USER_REGISTER_SUCCESS_MESSAGE).setStatus(HttpStatus.OK.value()).build(); logger.info("User registered successfully: {}", user); return ResponseEntity.status(HttpStatus.OK).body(genericResponse); } catch (Exception e) { logger.error("Error registering user: {}", user, e); GenericResponse<String> errorResponse = new GenericResponseBuilder<String>() .setMessage("Failed to register user").setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()).build(); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } }
public class GenericResponse<T> { private String message; private int status; private T data; private GenericResponse() { } public static class GenericResponseBuilder<T> { private GenericResponse<T> genericResponse; public GenericResponseBuilder() { genericResponse = new GenericResponse<T>(); } public GenericResponseBuilder<T> setMessage(String message) { genericResponse.message = message; return this; } public GenericResponseBuilder<T> setStatus(int status) { genericResponse.status = status; return this; } public GenericResponseBuilder<T> setData(T data) { genericResponse.data = data; return this; } public GenericResponse<T> build() { return this.genericResponse; } }}
I tried Hitting the API from Postman & the response I received is:
"status": 406,"error": "Not Acceptable","message": "Acceptable representations: [application/json, application/*+json].","path": "/user/register"