A @RestController
не подходит для этого. Если вам нужно вернуть разные типы ответов, используйте ResponseEntity<?>
, где вы можете явно установить код состояния.
body
из ResponseEntity
будут обрабатываться так же, как и возвращаемое значение любого @ResponseBody
аннотированного метода.
@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);
}
}
Обратите внимание, что вам не нужно @ResponseBody
для метода @RequestMapping
внутри @RestController
аннотированного класса.
Вам не нужен список. Компилятор скажет вам. Если вы получаете сообщение об ошибке компилятора «предупреждение CS0168», добавьте 168 в список (или, еще лучше, исправьте код).
В MSDN есть список кодов предупреждений. К сожалению, вам нужно щелкать каждую ссылку, чтобы увидеть, что на самом деле означает код.
Просмотрите список ошибок и предупреждений компилятора C # , чтобы найти отдельные номера предупреждений.
FYI -
If you're using Visual Studio 2008, you can get the code directly from the Error List by right-clicking the error, and selecting Show Error Help from the context menu. The Help window should pop up, and show you everything you ever wanted to know about the error a la the MSDN website.
Could save you a bit of time.