对我来说,问题很大。 :)。据我了解,您想询问Spring可以支持的REST服务中的验证。
1.是否有必要在 RestTemplate 级别对来自 REST 调用的响应进行此类验证?
实际上,这取决于您的应用或您的业务。您可以在 Controller 中进行,也可以在 Service Level 中进行,甚至可以进行自定义验证。对我来说,没有人强迫你做任何事情。
但是,根据我的经验,我们确实应该进行验证。所以我的答案是YES。
2. RestTemplate 是否会支持这一点,以在未来某个时候验证来自休息调用的响应?
我假设您想要验证的详细信息?!正确的?
Spring 支持许多事情来进行验证。简单的方法可以使用PathVariable或RequestParameter。例如:
@GetMapping("/test/{name}")
private String test(@PathVariable(value = "name", required = true) String name){
//...
}
Spring 将验证所有请求,并在所需参数丢失或类型错误时以 400 Bad Request 响应...
Spring 还支持 JSR 303 Bean 验证:http://beanvalidation.org/1.0/spec/ 例如这里:
public class MessageBean {
@NotNull
private String title;
@NotNull
private String message;
// getters/setters/etc
}
或者您想要执行自定义用户响应,例如:
@ExceptionHandler
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ErrorResponse handleException(MethodArgumentNotValidException exception) {
//....
return ErrorResponse.builder().message(errorMsg).build();
}
更多细节在这里:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-validation
因此,这取决于需要我们在任何级别进行验证的业务。
3.如果答案是否定的:(3) 为什么?
这个不用回答了。 :)
希望有帮助