note: schema 不能直接存储成 zsearch . 因为存在动态的key, 如果要存, 需要进行列转行.
表单页面是面向运维产品的, 所以不能透出zsearch的类型概念 ,特别是 keyValue和string , object 和 nested概念, 用更通俗易懂的话来表达, 而不是用专有术语.
阿里的表单工具,提示是中文.
目录
与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因.
3. 物料 低代码表单设计 ( 内含 json-schema )
附录2 vue组件通过 JSON Schema 生成对应的form表单
gpt: 有一些Java实现支持JSON Schema draft 2020-12版本。以下是一些常见的实现:
Spring Expression Language (SpEL)
复杂校验 条件校验 DefaultGroupSequenceProvider
与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因.
面向技术, 先有对象,再有规则, 如何通过交互来编写schema是个难题?
和json-schema区别: 思路上就是反过来的, 面相产品, schema可视化编辑器, 是面向结构设计. 现有模型,才有数据, 才可以编程.
基于配置的校验
动态配置
Spring AOP+反射实现自定义动态配置校验规则,让校验规则飞起来_程序猿洞晓的博客-CSDN博客
dynamic-check: 动态校验,基于Aspect和反射实现请求参数动态校验
json-schema
1. 后台接口校验 ajv工具类
2. api接口平台 Apifox Apifox
3. 低代码表单制作
你不知道的 JSON Schema , 已经成为低代码平台的基石【低代码平台】_傲娇的koala的博客-CSDN博客
一个例子 ( 数组, 整型)
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum1": 0,
"exclusiveMaximum1": 100
}
},
"required": [
"age",
"name"
]
, "additionalProperties": false
}
}
不能出现 jsonschema 未定义过的字段, , "additionalProperties": false
[{"name":"1",
"age":1000000000000000000000000000000000000000000000000000000000000000000000.0}]
schema 不能直接存储成 zsearch
因为存在动态的key, 如果要存, 需要进行列转行.
schema生成工具
1. 演示链接 https://hellosean1025.github.io/json-schema-visual-editor/
2. JSON Schema 生成器 | Vue Json schema form
GitHub - fei33423/fork_vue-json-schema-form
schema校验和反向生成表单
google : json scheme validate online
排序
(最好用) JSON Schema Validator - Newtonsoft
开源的 Vue JSON Schema form editor - VJSF
Free Online JSON Validator (JSON Schema)
JSON Schema Lint :: JSON Schema Validator
1/2. 领域,schema定义
)
演示链接 https://hellosean1025.github.io/json-schema-visual-editor/
3. 物料 低代码表单设计 ( 内含 json-schema )
form-create-designer开源啦,好用的vue可视化表单设计器 - 最终生成json-scheme - 掘金
Mall-Cook: 介绍 Mall-Cook是一个基于 vue 开发的可视化商城搭建平台,包括多页面可视化构建、Json Schema生成器(可视化搭建物料控制面板),实现组件流水线式标准接入平台
schema-generator: FR的schema的可视化生成器
schema生成器 含校验
无 if else 能力
JSON Schema 生成器 | Vue Json schema form
GitHub - fei33423/fork_vue-json-schema-form
可视化搭建开源
对可视化搭建感兴趣的同学,可以阅读树酱君之前写的 从0到1开发可视化数据大屏 📺
其他开源low-code项目可借鉴, 可视化页面搭建 H5-Dooring
阿里巴巴 formily 表单框架等
附录1 官网
JSON Schema | The home of JSON Schema
Understanding JSON Schema — Understanding JSON Schema 2020-12 documentation
得物技术浅谈json-schema入门教程 ( 含重用 和递归 高阶功能)
功能介绍:
- 复用, 重用(reuse)功能 看官网的 "$ref": "#/$defs/name"
- 递归功能: "$ref"
- 锚点功能: anchor
- 更复杂功能介绍:
解释Json模式中的$dynamicRef $dynamicAnchor (相对于$ref和$anchor) - 问答 - 腾讯云开发者社区-腾讯云
type和能力总结文章: 2023我还不知道的JSON Schema-基础篇 - 掘金
what is schema
Any “validation tool” for a sufficiently complex data format, therefore, will likely have two phases of validation: one at the schema (or structural) level, and one at the semantic(语义) level . The latter check will likely need to be implemented using a more general-purpose programming language (通用语言).
附录1.1 schema if else 能力
Applying Subschemas Conditionally — Understanding JSON Schema 2020-12 documentation
翻译: 子模式条件 - JSON Shcema 使用介绍及 Monaco-editor 的 JSON Schema 配置 - 掘金
unevaluatedProperties 和 additionalProperties区别
附录1.2 自定义format的能力,
不用像正则那样, 简化jsonSchem, 简化运营同学配置. 进一步可以实现运营同学自己维护自定义format
js : API Reference | Ajv JSON schema validator
java: JsonSchemaFactory.newBuilder()
.setValidator(VALIDATOR)
.addFormatValidator("myFormat", new MyFormatValidator())
附录1.3 自定义object 校验ajv
API Reference | Ajv JSON schema validator
jsonschema fge json-schema-validator 高级能力 自定义类校验
jsonschema networknt json-schema-validator 高级能力 自定义类校验_个人渣记录仅为自己搜索用的博客-CSDN博客
附录2 vue组件通过 JSON Schema
生成对应的form表单
无 if else 能力
附录3 微软开源的代码编辑器Monaco-editor相关
Monaco-editor的JSONSchema配置及使用介绍-电脑学习网
JSON Shcema 使用介绍及 Monaco-editor 的 JSON Schema 配置 - 掘金
使用monaco-editor实现一个带语法高亮和代码提示的在线编辑器_monacoeditor语法检查_weixin_44438275的博客-CSDN博客
java端校验
其他语言支持
JSON Schema的网站,列表中有27种不同的各类计算机编程语言的选项。
xml-shcema
xsd可视化编辑器
www.xml-tools.net, XMLSpy, JDeveloper , XSD Diagram , Liquid XML,
Visual Studio 2013内置了一个非常酷的可视化工具。在文件->打开->文件中,选择.xsd,然后将元 素从XML Schema Explorer拖到设计器图面上。
Grid-ML Schema Viewer非常适合搜索和可视化XML Schema:https://gridml.com/xml-schema-viewer。当涉及大型模式或浏览图表不可行时,我发现它比其他工具更好。该工具还允许您复制选择项的XPath或JSON路径。
Spring Expression Language (SpEL)
紧接着Spring Validator 5.7 Spring Validator ,JSR-303 6. Spring Expression Language (SpEL)
巧用Spring Expression(SpEL)做动态校验_spel表达式校验_淸風是也的博客-CSDN博客
基于注解的校验
JSR-303 Bean验证API
Spring Validator
Spring 3对其验证支持进行了一些增强。 首先,现在完全支持JSR-303 Bean验证API。 其次,以编程方式使用时,Spring的DataBinder现在可以验证对象以及绑定到它们。 第三,Spring MVC现在支持声明式验证@Controller输入,@Size(max=64),@Min(0)
JSR - 303:
Hibernate Validator 是 Bean Validation 的参考实现,说白了Hibernate Validator
就是JSR-303
。
下载 JSR 303 – Bean Validation 规范 http://jcp.org/en/jsr/detail?id=303
JSR 303 Annotations List
Spring Bean Validation Example with JSR-303 Annotations 下
hibernate-validate
复杂校验 条件校验 DefaultGroupSequenceProvider
ConditionStringResultStringConstraint,DefaultGroupSequenceProvider
Hibernate Validator 第25篇:多个字段的联合约束-条件结果约束_顽木芽的博客-CSDN博客