【问题标题】:Validating response from REST API call验证来自 REST API 调用的响应
【发布时间】:2017-04-07 23:36:55
【问题描述】:

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

我计划创建一个 Validator.java 类并为每个 API 调用实现验证方法。

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

【问题讨论】:

    标签: java spring rest validation


    【解决方案1】:
    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;
        }
    
    
    
    }
    

    【讨论】:

      【解决方案2】:

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

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

      请参考分步指南http://www.journaldev.com/2668/spring-validation-example-mvc-validator,作者在此将其与弹簧一起使用。

      【讨论】:

      • 感谢 AmitK 的回复。我的理解是上述验证是表单验证。我正在寻找的是不同的用例(可能是技术相同)。当我从我的 Web 服务调用下游时,我想验证来自下游的响应。例如,如果我正在调用 google API,那么我想验证来自该 API 的响应。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 2021-05-27
      相关资源
      最近更新 更多