https://tools.ietf.org/html/draft-zyp-json-schema-04
A lightweight json data generator.
https://github.com/adleroliveira/dreamjs
DreamJS是一个轻量级的javascript库用于生成JSON数据。这个库可以输出随机JSON格式数据使用标准的类型,如字符串,数字,日期,布尔,数组,或与60多个内置的自定义类型,如姓名,年龄,地址,词,句,段,性别,(RGB)色等。
Json schema 是用于定义json数据结构的json媒体类型。
Json schema 为特定应用程序提供json数据的约定并规范了如何与之交互。
Json schema 指在为json数据定义校验、文档、超链接导航以及交互控制。
从 描述数据格式、 构造模拟数据 的角度,这和我们要谈的 JSON Schema 不谋而合。
什么是 Schema?
当我们在描述 XX(例:文字链接) 的时候,需要约定数据的组织方式,比如,需要知道有哪些字段,这些字段的取值如何表示等,这就是 JSON Schema 的来源。
SON Schema 定义了如何基于 JSON 格式描述 JSON 数据结构的规范,进而提供数据校验、文档生成和接口数据交互控制等一系列能力。它的特性和用途,可以大致归纳为以下几点:
1. 用于描述数据结构
在描述 JSON 数据时,如果数据本身的复杂度很高,高到三维四维,普通的标签函数已经无法表示这种层级结构了,而 JSON Schema 利用 object 和 array 字段类型的反复嵌套,可以规避掉这个缺陷。
当然,除了键值等基本信息,规范层面还提供了丰富的关键词支持,如果想通过自定义扩展字段,解决特定场景的业务需求,也是非常方便的。
2. 用于构建人机可读的文档
计算机领域有个概念叫做自描述。所谓自描述,可以理解为:文档本身包含了自身与其他文档交互相关的描述信息,不需要其他的配置文件或者额外信息来描述。
而 JSON Schema 就是自描述的,它本身就是一份很完善的说明文档,字段的含义说明、该如何取值、格式的要求等都清晰明了。
3. 用于生成模拟数据
通过标签函数生成模拟数据,只能解决基本的格式要求。比如 string 类型的字段,模拟出来的数据,无非是一个随机字符串。
但在 JSON Schema 中,由于字段的描述不仅仅是类型,更多的约束条件,可以确保模拟数据更接近于真实数据。
4. 用于校验数据,实现自动化测试
接口数据的校验工作,往往依赖于测试代码逻辑和用例。如果用 JSON Schema 描述一个数据接口,就不需要再编写测试代码了,所有的逻辑都可以移植到 JSON Schema 中维护。配合 jsv、tv4 等二方校验工具,接口测试可以真正自动化。
© admin for 可乐吧, 2016. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: JSON Schema
您可能也喜欢: |
json学习小记 |
laravel 学习 Schema 小记 |
JSON到底是什么? |
学习,是前进的必由之路(转) |
无觅 |
Feed enhanced by Better Feed from Ozh