根据jsonshema验证json参数

原创
2016/09/24 15:23
阅读数 187

         项目中的参数采用json进行传入,但很多情况下,如果客户端没有按照要求进行参数传入,比如json中少了API必须要使用的参数,当服务端在进行业务运算的时候就会出现一些异常。可能有人会说,API为了保证功能的正确性,对这些参数进行校验是必须的,但这样一来会出现很多重复的校验代码,肯能又有人会说,采用AOP进行拦截,全部在Advice中实现不就没有重复了么?是这样么?当然不是,即便是在AOP中,你能保证所有的参数校验都是一样的么?还是需要对不同的API进行不同的校验。

         那有没有一种比较好的方式,既让参数校验在Advice中进行,又不会有大量的重复呢?当然有,只是我自己的一些做法,那就是jsonschema(什么是jsonschema?请自行Google),虽然目前还只是草案,但其实已经有诸多实现来使用jsonschema对json进行校验,我在项目中也采用这种方式进行校验。

        思路分2步:1、将DO生成jsonschema 2、采用schema对json进行校验

        涉及到的库:

        <dependency>
            <groupId>com.github.fge</groupId>
            <artifactId>json-schema-validator</artifactId>
            <version>2.2.6</version>
        </dependency>
        <dependency>
            <groupId>com.github.reinert</groupId>
            <artifactId>jjschema</artifactId>
            <version>0.6</version>
        </dependency>

        json-schema-validator:用于校验

        jjschema:用户将DO生成schema(直接缓存起来用就行了)

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部