这是我自己写的一个根据模型构建数据的小工具,小轮子,和大家分享下 ~
这个工具不是什么高大上的工具,是定义一个接口数据模型,该模型是面向人类和机器通用较友好的 API 文档。
根据自定义的 schema 模型,构建业务返回的数据,功能包括:
- 模型文件解析
- 模型数据默认赋值
- 规则校验
- ...(更多功能待挖掘,嘿嘿)
源码地址: https://github.com/aydenuse/s...
- 定义数据模型
{
"title": "user",
"description": "用户数据模型",
"type": "object",
"properties": {
"id": {
"type": "string",
"dValue": ""
},
"name": {
"type": "string",
"dValue": ""
},
"age": {
"type": "integer",
"dValue": 0
},
"tall": {
"type": "number",
"dVallue": 0,
"minimum": "1.40",
"maximum": "3.00"
},
"status": {
"type": "integer",
"dValue": 0,
"enumValue": [0, 1]
},
"tag": {
"type": "array",
"dValue": []
},
"students": {
"type": "array",
"dValue": [],
"itemType": "object",
"properties": {
"name": {
"type": "string",
"dValue": ""
}
},
"required": ["name"]
},
"music": {
"type": "object",
"dValue": {},
"properties": {
"id": {
"type": "string",
"dValue": ""
},
"duration": {
"type": "number",
"dValue": 0
}
},
"required": ["id", "duration"]
}
},
"required": ["id", "name", "age", "status", "music", "tag", "students", "tall"]
}
- 传入要被解析的数据
'use strict'
// 模拟业务数据
const data = {
id: '5gdv4r4sdadwqjdhhf43546',
name: '我是王晓武',
age: '23',
tag: ['man', 'teacher', 'sport', { id: 1 }],
_v: '123123',
music: {
},
students: [
{
name: 'ayden'
}
],
tall: 1.89
}
const schemaParser = require('./schema-parser')
const schema = new schemaParser()
schema.init()
const result = schema.build({ data: data, title: 'user' })
console.log(result)
- result 被解析结果如下:
//
{
id: '5gdv4r4sdadwqjdhhf43546',
name: '我是王晓武',
age: 23,
status: 0,
music: { id: '', duration: 0 },
tag: [ 'man', 'teacher', 'sport', { id: 1 } ],
students: [ { name: 'ayden' } ],
tall: 1.89
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。