请求过程的json生成与模板转换插件
代码暴力转换实现,仅支持一维json的生成,即array与object相互嵌套格式的json
json校验功能是使用jsonschema对请求的body体(目前仅支持‘application/json’)进行校验,如果不匹配会返回415的错误
模板生成报文
apig-json-creator
├─ apig-json-creator-0.2.0-1.rockspec
└─ kong
└─ plugins
└─ apig-json-creator
├─ handler.lua //基础模块,封装openresty的不同阶段的调用接口
├─ schema.lua //配置模块,定义插件的配置
├─ access.lua //access阶段的处理模块
├─ etlua.lua //etlua源码
├─ base64.lua //base64模块
├─ jsonschema //jsonschema校验模块源码
│ ├─ compiler.lua
│ ├─ init.lua
│ └─ store.lua
└─ net //jsonschema依赖
└─ url.lua
这里对schema模块的配置项进行说明。
config.queryPattern //query参数生成json规则
config.headPattern //head参数生成json规则
config.jsonSchema //控制台下发的json schema字符串
config.jsonTemplate //控制台下发的模板字符串
config.faultTolerant //校验容错
queryPattern和headPattern的规则由三部分组成,用分号隔开,分别是query(或head)的参数名,json绝对路径,数据类型,格式如下:
a.N.N;data.search_data[].elements[].rating;0
- a.N.N: 实际情况下为a.1.1,a.1.2,a.2.1,a.2.2 等 (N的位置为具体的数字,表示json路径中[]内的值,即array层的位置)
- data.search_data[].elements[].rating: json路径的例子
- 数据类型: 0:string1:number2:integer3:boolean6:null7:any
这个配置项存放json schema字符串。
这个配置项存放模板字符串。