入参校验产品化 schema

note:  schema 不能直接存储成 zsearch  . 因为存在动态的key, 如果要存, 需要进行列转行.

表单页面是面向运维产品的, 所以不能透出zsearch的类型概念 ,特别是 keyValue和string , object 和 nested概念, 用更通俗易懂的话来表达, 而不是用专有术语.

阿里的表单工具,提示是中文.

目录

与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因.

基于配置的校验

动态配置

json-schema

一个例子 ( 数组, 整型)

 schema 不能直接存储成 zsearch  

schema生成工具

schema校验和反向生成表单

1/2.  领域,schema定义

3. 物料 低代码表单设计 ( 内含 json-schema )

  schema生成器 含校验

可视化搭建开源

 阿里巴巴  formily 表单框架等

附录1 官网

   what is schema

附录1.1 schema  if else 能力

附录1.2 自定义format的能力,

附录1.3 自定义object 校验ajv 

附录2 vue组件通过 JSON Schema 生成对应的form表单

附录3 微软开源的代码编辑器Monaco-editor相关 

java端校验

networknt

 fge gpt用这个举例子

fastjson

gpt: 有一些Java实现支持JSON Schema draft 2020-12版本。以下是一些常见的实现:

      

其他语言支持

xml-shcema

    xsd可视化编辑器

Spring Expression Language (SpEL)

基于注解的校验

JSR-303 Bean验证API

JSR - 303:

JSR 303 Annotations List

hibernate-validate

复杂校验 条件校验 DefaultGroupSequenceProvider

spring-web校验


与规则引擎不同,规则面向技术, 传入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定义

json-schema 可视化编辑器发布了 - 掘金

(GitHub - Open-Federation/json-schema-editor-visual: A json-schema editor of high efficient and easy-to-use, base on React.,

GitHub - fei33423/fork_json-schema-editor-visual: A json-schema editor of high efficient and easy-to-use, base on React.

)

演示链接 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-form给开发者用的表单工具 - 掘金

 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 表单框架等

     百度 - amis 13.9K

附录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 能力

开源的 Vue JSON Schema Form

附录3 微软开源的代码编辑器Monaco-editor相关 

Monaco-editor的JSONSchema配置及使用介绍-电脑学习网

JSON Shcema 使用介绍及 Monaco-editor 的 JSON Schema 配置 - 掘金   

使用monaco-editor实现一个带语法高亮和代码提示的在线编辑器_monacoeditor语法检查_weixin_44438275的博客-CSDN博客

java端校验

https://blog.csdn.net/fei33423/article/details/131934758?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22131934758%22%2C%22source%22%3A%22fei33423%22%7D

其他语言支持

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

5.7 Spring 3 Validation

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博客

 解决多字段联合逻辑校验问题【享学Spring MVC】

spring-web校验

SpringBoot Validation优雅的全局参数校验 - 知乎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Java 中,可以使用 SimpleDateFormat 类对日期进行格式化。假设你有一个 XML 中的日期字符串,格式为 "yyyy-MM-dd",你可以使用以下代码将其格式化为 Java 中的日期对象: ```java String xmlDate = "2021-10-18"; SimpleDateFormat xmlDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date javaDate = xmlDateFormat.parse(xmlDate); ``` 这样,你就可以将日期字符串转换为 Java 中的 Date 对象。如果你需要将其转换为其他格式的日期字符串,可以使用 SimpleDateFormat 的 format 方法。例如: ```java SimpleDateFormat javaDateFormat = new SimpleDateFormat("dd/MM/yyyy"); String formattedDate = javaDateFormat.format(javaDate); ``` 这将把日期对象格式化为 "dd/MM/yyyy" 格式的字符串。 ### 回答2: Java 中对于入参的 xml 日期格式化,可以通过使用 SimpleDateFormat 类中的 parse() 方法来实现。 首先,我们需要创建一个 SimpleDateFormat 对象,并指定日期的格式模式。例如,如果 xml 中的日期格式是 "yyyy-MM-dd",我们可以使用以下代码创建 SimpleDateFormat 对象: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 接下来,我们可以使用 sdf 对象的 parse() 方法将 xml 日期字符串转化为 Java 中的 Date 对象。例如,假设 xml 日期字符串是 "2022-01-01",可以使用以下代码将其转化为 Date 对象: Date date = sdf.parse("2022-01-01"); 如果 xml 中的日期格式与 SimpleDateFormat 对象指定的日期格式模式不匹配,将会抛出一个 ParseException 异常。因此,我们需要在代码中处理该异常情况。 最后,我们可以将转化后的 Date 对象作为入参传递给相应的方法或函数进行进一步的处理。 总结起来,Java 中对于入参的 xml 日期格式化,可以使用 SimpleDateFormat 类的 parse() 方法将 xml 日期字符串转化为 Date 对象,从而实现对日期的格式化操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值