2017-04-07 56 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