Quiero utilizar este código para recibir enlace http con los valores:
@PostMapping(value = "/v1/notification")
public String handleNotifications(@RequestParam("notification") String itemid) {
// parse here the values
return "result successful result";
}
¿Cómo puedo devolver el código http 200
- respuesta exitosa?
Y también, por ejemplo, si hay una excepción código en el procesamiento de códigos cómo puedo devolver error 404
?
Puede hacerlo mediante la anotación de su método con el @ResponseStatus
uso de HttpStatus.OK
(Sin embargo, debe ser 200
por defecto), así:
algunos controlador
@PostMapping(value = "/v1/notification")
@ResponseStatus(HttpStatus.OK)
public String handleNotifications(@RequestParam("notification") String itemid) throws MyException {
if(someCondition) {
throw new MyException("some message");
}
// parse here the values
return "result successful result";
}
Ahora, con el fin de devolver un código personalizado al manejar una excepción específica se puede crear un controlador separado todo para hacer esto (lo puede hacer en el mismo controlador, sin embargo) que se extiende desde ResponseEntityExceptionHandler
y está anotado con @RestControllerAdvice
y debe tener un método para manipulación que excepción específica como se muestra a continuación:
controlador de manejo de excepciones
@RestControllerAdvice
public class ExceptionHandlerController extends ResponseEntityExceptionHandler {
@ExceptionHandler(MyException.class)
protected ResponseEntity<Object> handleMyException(MyException ex, WebRequest req) {
Object resBody = "some message";
return handleExceptionInternal(ex, resBody, new HttpHeaders(), HttpStatus.NOT_FOUND, req);
}
}