2017-08-28 3 views
0

Spring prend en charge la validation basée sur des annotations au niveau du contrôleur.Comment valider la réponse de RestTemplate?

(1) Est-il nécessaire de faire de telles validations également au niveau RestTemplate pour les réponses des appels REST?

Si la réponse est Oui: (2) Y aura-t-il un support pour le RestTemplate pour valider les réponses des appels de repos dans le futur? Si la réponse est non: (3) pourquoi?

+0

Clarification: Ma question n'est PAS de valider une demande. Ma question est de "valider une réponse d'un autre service". – Jothi

Répondre

0

Pour moi, les questions sont assez grandes. :) Si je comprends bien, vous aimeriez demander la validation dans le service REST que Spring peut prendre en charge.

1. Est-il nécessaire de faire de telles validations également au niveau RestTemplate pour les réponses des appels REST?

En fait, cela dépend de vos applications ou de votre entreprise. Vous pouvez faire au contrôleur ou vous pouvez faire au niveau de service ou même vous pouvez faire votre validation personnalisée. Pour moi, personne ne vous force à faire quoi que ce soit. Cependant, comme mon expérience, nous devrions faire la validation à coup sûr. Donc ma réponse ici est OUI.

2. Y aura-t-il un support pour le RestTemplate pour valider les réponses des appels de repos dans le futur?

Je suppose que vous aimeriez avoir le détail de la validation ?! Droite? Spring supporte beaucoup de choses pour faire la validation. Pour la manière simple, vous pouvez utiliser PathVariable ou RequestParameter .Par exemple:

@GetMapping("/test/{name}") 
    private String test(@PathVariable(value = "name", required = true) String name){ 
     //... 
    } 

printemps validera toutes les demandes et de répondre avec 400 Bad Request lorsque le paramètre requis est manquant ou a un mauvais type ...

Spring soutient également le JSR 303 Bean validation: http://beanvalidation.org/1.0/spec/ Par exemple ici:

public class MessageBean { 
    @NotNull 
    private String title; 
    @NotNull 
    private String message; 

    // getters/setters/etc 
} 

Ou vous souhaitez faire la réponse de l'utilisateur personnalisée comme:

@ExceptionHandler 
@ResponseStatus(HttpStatus.BAD_REQUEST) 
public ErrorResponse handleException(MethodArgumentNotValidException exception) { 
    //.... 
    return ErrorResponse.builder().message(errorMsg).build(); 
} 

Quelques détails ici: dans https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-validation

Donc, cela dépend de l'entreprise qui nous oblige à faire la validation à tout niveau.

3. Si la réponse est Non: (3) pourquoi?

Pas besoin de répondre à cette question. :)

Espérons que ça aide

+0

Merci pour votre réponse mais ce n'est pas ce que je cherchais. Probablement ma question n'était pas assez claire. Je suis d'accord avec la validation d'une "demande" à n'importe quelle couche en fonction des besoins techniques de l'entreprise. Ma question est _NOT_ concernant la validation d'une demande.Ma question est de "valider une réponse d'un autre service". – Jothi