Le code d'état Http pour les Exceptions

j'ai un SpringBoot contrôleur, et je veux rentrer le bon code http statut pour les Exceptions. Donc, ma question est: Qui http statu code est mieux pour Exception le "500" ou "409"?

C'est mon code:

@PostMapping(value = {"", "/"})
public ResponseEntity<Response> create(@RequestBody StudioDto studioDto,
        ServletRequest servletRequest, ServletResponse servletResponse) {

    Response response = new Response();

    try {
        studioService.createStudio(studioDto);
        response.setMessage("The studio was create");
        response.setStatusCode(HttpServletResponse.SC_CREATED);

    } catch (Exception e) {
        response.setMessage("Op we have a little problem");
        response.setErrorMessage(e.getMessage());

        //Which one
        //this one 5xx
        response.setStatusCode(500);
        //Or this one 4xx
        response.setStatusCode(409);
    }

    return new ResponseEntity(response, response.getHttpStatus());
}
Une indication approximative que j'utilise est le suivant: Réfléchir à de nouvelles tentatives. Si il y a une chance qu'une nouvelle tentative avec la même demande sera couronnée de succès, c'est un 5xx (exemple: problème de connectivité de base de données qui a été résolu quelques secondes plus tard). Si une nouvelle tentative avec la même demande sera toujours à l'origine de cette erreur, c'est un 4xx (exemple: champ non valide dans la demande). De cette façon, un client sait si cela a un sens pour réessayer ou pas.

OriginalL'auteur Carlos Mario | 2018-01-07