0
votes

Personnalisation du message de réponse HTTP lors d'une API de repos de démarrage de ressort d'erreur

J'aimerais avoir un message personnalisé pour la réponse HTTP, c'est-à-dire xxx pré>

au lieu du message ci-dessus, je veux un "message" personnalisé: p> xxx

Voici mon classe d'exception: P>

catch(Exception e) 
        {   
  //basically I want e.getMessage() to be the value of the "Message" key
            throw new ThrowErrorMessage(e.getMessage()); 
            
        }
        


0 commentaires

3 Réponses :


2
votes

Dans votre contrôleur, ne faites pas de prises de vue. Au lieu de cela, effectuez directement un lance code> sur la méthode, comme: xxx pré>

et s'il y a une erreur, vous obtiendrez ce que vous souhaitez, c'est-à-dire P>

@Component
public class CustomErrorAttributes extends DefaultErrorAttributes {

    @Autowired
    private ObjectMapper objectMapper;

    @Override
    public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {
     
        Map<String, Object> map = super.getErrorAttributes(webRequest, options);

        //customize the values of the map here i.e timestamp, status, error, message, path

        return map;
    }
}


3 commentaires

CATCODER69 Est-ce que cela répond à vos questions?


@jumping_monkey J'aime l'idée, mais la fonction que j'ai définie a un autre type de retour (mon type de retour est d'un type de classe, la classe étant définie par moi) ... alors mon objectif est que tout va bien, alors Je retourne un objet de ce type de classe, sinon nous obtenons le message d'erreur dans le format indiqué.


J'obtiens ce que vous voulez dire, ma réponse s'adresse à cela, regardez le retour Nouvelle réponse de retour <> (Responedto, httpStatus); . Il renvoie un organe de réponse, c'est-à-dire répésié , dans votre cas, ce serait votre objet de classe. J'ai mis à jour ma réponse avec un exemple.



4
votes

Si vous utilisez Spring Boot 2.3, définissez la propriété ci-dessous dans Application.Properties ajoutera votre message personnalisé dans la réponse.

server.error.include-message=always


0 commentaires

0
votes

Personnaliser la réponse d'erreur, basée sur une exception peut être effectuée, à l'aide d'ExceptionnelHandler. Vous pouvez également réutiliser défaulterrorattributes et ResponsibleExceptionDherler Comme ceci: https: // Stackoverflow. COM / A / 64866190/548473

Voir aussi Utilisation de errorAttributes dans notre erreur personnalisée
/ a>


0 commentaires