I\'m trying to have a @RestController which takes a @PathVariable return a specific object in JSON format, along with proper status code. So far th
A @RestController is not appropriate for this. If you need to return different types of responses, use a ResponseEntity> where you can explicitly set the status code.
The body of the ResponseEntity will be handled the same way as the return value of any @ResponseBody annotated method.
@RequestMapping(value = "/wells/{apiValue}", method = RequestMethod.GET)
public ResponseEntity> fetchWellData(@PathVariable String apiValue){
try{
OngardWell ongardWell = new OngardWell();
ongardWell = ongardWellService.fetchOneByApi(apiValue);
return new ResponseEntity<>(ongardWell, HttpStatus.OK);
}catch(Exception ex){
String errorMessage;
errorMessage = ex + " <== error";
return new ResponseEntity<>(errorMessage, HttpStatus.BAD_REQUEST);
}
}
Note that you don't need @ResponseBody on a @RequestMapping method within a @RestController annotated class.