squbs-16. 校验

作者: 吕亦行 | 来源:发表于2017-01-31 15:08 被阅读8次

squbs校验为数据校验提供Spray指令,通过使用 Accord Validation Library。因为Spray指令目前只支持Scala,目前的squbs版本没有对Java代码的支持。

依赖

在你的build.sbt或scala构建文件中添加如下依赖:

"org.squbs" %% "squbs-pattern" % squbsVersion

用法

在作用域中提供一个隐式Person校验器, validate指令可以用作其他Spray 指令:

import ValidationDirectives._
validate(person) { 
    ...
}

例子

这里有一个 Person类的例子和相对应的校验器(请看Accord Validation Library获取更多的校验器用法例子)

case class Person(firstName: String, lastName: String, middleName: Option[String] = None, age: Int)

object SampleValidators {

  import com.wix.accord.dsl._
  implicit val personValidator = com.wix.accord.dsl.validator[ Person ] { p =>
                p.firstName as "First Name" is notEmpty
                p.lastName as "Last Name" is notEmpty
                p.middleName.each is notEmpty // If exists, should not be empty.
                p.age should be >= 0
              }
}

现在你可以使用validate指令如下:

def route =
    path("person") {
      post {
        entity(as[Person]) { person =>
          import ValidationDirectives._
          validate(person) {
            respondWithMediaType(`application/json`) {
              complete {
                person
              }
            }
          }
        }
      }
    }

如果一个校验拒绝发生时,400 Bad Request将与包含逗号分隔的引起校验拒绝的字段列表的响应报文一起返回。使用以上例子,如果请求body包含如下:

{
    "firstName" : "John",
    "lastName" : "",
    "age" : -1
}

然后,响应报文将包含:

Last Name, age 

相关文章

  • squbs-16. 校验

    squbs校验为数据校验提供Spray指令,通过使用 Accord Validation Library。因为Sp...

  • 设计模式之责任链模式

    抽象处理者 校验的具体规则类 校验用户昵称 校验邮箱 校验状态 校验密码 校验规则客户端 输出结果

  • Kettle 实战之 (3) 数据校验

    实例 增加节点-数据校验 1、从【校验】节点分类中选择【数据校验】 2、设置校验规则点击【增加校验】,增加校验规则...

  • spring的后台数据校验

    数据校验对于开发项目来说是必须的。校验一般分为前台校验和后台校验,前台校验是必须要做的,后台校验是可选的。后台校验...

  • 前端常用正则校验

    校验邮箱方法 校验电话 校验手机号

  • Alamofire证书校验的几种方式

    校验颁发机构 校验公钥 证书完全校验

  • Element、iview 表单校验总结

    本文分享主要内容:基本用法、校验方式、部分校验(关联交验)、新增校验、 动态切换校验、校验/重置Form表单、日期...

  • 校验器

    数据通过校验器校验,如果校验不通过,拦截器抛出错误,校验器下面的代码就不能继续执行。 拓展:校验器负责数据校验,拦...

  • 25个常用的正则表达式

    1、手机号码的校验 2、身份证的校验 3、邮箱的校验 4、URL的校验 5、IPv4的校验 6、16进制颜色的校验...

  • 常用正则表达式

    1、手机号码的校验 2、身份证的校验 3、邮箱的校验 4、URL的校验 5、IPv4的校验 6、16进制颜色的校验...

网友评论

    本文标题:squbs-16. 校验

    本文链接:https://www.haomeiwen.com/subject/ixhkittx.html