2017-04-07 83 views
0

我正在处理响应映射的错误处理。在继续并将响应映射到我的域对象之前,我想验证响应。检查错误。验证来自REST API调用的响应

我打算有一个Validator.java类,并为每个API调用实现验证方法。

春天有没有其他办法可以做到这一点?

回答

0
package com.people.net; 


import javax.validation.constraints.Pattern; 
import javax.validation.constraints.Size; 
import org.hibernate.validator.constraints.Email; 


public class UserInfo { 
    //Unicode check 
    @Pattern(regexp="[0-9a-zA-Z\\s-]+", message="chars,numbers allowed only") 
    String name; 
    int id; 

    @Pattern(regexp="([0-9]{10})", message="minLength=maxLength=10 only numbers") 
    String pin; 

    @Email 
    String email; 

    @Size(max=5, message="5 chars max") 
    String emailType; 
    @Size(max=5, message="5 chars max") 
    String addressType; 

    @Size(max=300, message="5 chars max") 
    String address; 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 

    public UserInfo(String name, String pin, String id) { 
     super(); 
     this.id = Integer.parseInt(id); 
     this.name = name; 
     this.pin = pin; 
    } 
    public UserInfo(int id,String name, String pin, String email, String emailType, String addressType, String address) { 
     super(); 
     this.id = id; 
     this.name = name; 
     this.pin = pin; 
     this.email = email; 
     this.emailType = emailType; 
     this.addressType = addressType; 
     this.address = address; 
    } 
    public UserInfo() { 

    } 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getPin() { 
     return pin; 
    } 
    public void setPin(String pin) { 
     this.pin = pin; 
    } 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 
    public String getEmailType() { 
     return emailType; 
    } 
    public void setEmailType(String emailType) { 
     this.emailType = emailType; 
    } 
    public String getAddressType() { 
     return addressType; 
    } 
    public void setAddressType(String addressType) { 
     this.addressType = addressType; 
    } 
    public String getAddress() { 
     return address; 
    } 
    public void setAddress(String address) { 
     this.address = address; 
    } 



} 
0

您应该探索一下hibernate验证器,它是用于bean验证的参考实现JSR-349。更多的信息在这里https://jcp.org/en/jsr/detail?id=349

此外,hibernate验证器是做bean验证的一个行业标准(大量可用于互联网上的东西),并附带大量流行的框架,如dropwizard等。它提供基于注释的验证,并允许您编写自己的自定义注释验证。

请参考逐步指南http://www.journaldev.com/2668/spring-validation-example-mvc-validator,其中作者使用它与春天。

+0

感谢您的答复AmitK。我的理解是上面的验证是表单验证。我正在寻找的是不同的用例(可能技术是相同的)。当我从我的Web服务向下游呼叫时,我想验证下游的响应。例如,如果我打电话给谷歌API,那么我想验证这个API的响应。 – user1180969