当前位置: 首页 > news >正文

入参校验产品化 schema

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

   面向技术, 先有对象,再有规则, 如何通过交互来编写schema是个难题?  

   和json-schema区别: 思路上就是反过来的, 面相产品, schema可视化编辑器, 是面向结构设计.  现有模型,才有数据, 才可以编程. 

基于配置的校验

动态配置

Spring AOP+反射实现自定义动态配置校验规则,让校验规则飞起来_程序猿洞晓的博客-CSDN博客

dynamic-check: 动态校验,基于Aspect和反射实现请求参数动态校验

json-schema

  schema可视化编辑器

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

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

 java端校验

     JSON Validator:工具与技术的比较_jsonvalidator_fmechina的博客-CSDN博客

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

  1. Jackson:Jackson是一个流行的JSON库,提供对JSON Schema的支持。Jackson 2.12.0版本已经支持JSON Schema draft 2020-12。

  2. json-schema-validator:这是一个基于Jackson的JSON Schema验证器。最新版本已经支持JSON Schema draft 2020-12。

  3. Jsonix:Jsonix是一个XML和JSON之间的映射器,支持JSON Schema验证。它已经支持JSON Schema draft 2020-12。

  4. AWS SDK for Java:AWS SDK for Java是Amazon Web Services的官方Java库,提供了对JSON Schema的验证功能。最新版本已经支持JSON Schema draft 2020-12。

  5. Everit JSON Schema:Everit是一个轻量级的JSON Schema验证器,支持JSON Schema draft 2020-12。

请注意,这只是一小部分支持JSON Schema draft 2020-12的Java实现。还有许多其他的库和工具可供使用。

JSON Schema 校验库——fge-json-schema-validator 依赖jackson(java版本)_json schema 在线_赶路人儿的博客-CSDN博客

JSON Schema的网站,列表中有27种不同的各类计算机编程语言的选项。

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

form-create-designer开源啦,好用的vue可视化表单设计器 - 最终生成json-scheme - 掘金

GitHub - fei33423/fork_vue-json-schema-form

你不知道的 JSON Schema , 已经成为低代码平台的基石【低代码平台】_傲娇的koala的博客-CSDN博客

Mall-Cook: 介绍 Mall-Cook是一个基于 vue 开发的可视化商城搭建平台,包括多页面可视化构建、Json Schema生成器(可视化搭建物料控制面板),实现组件流水线式标准接入平台

schema-form给开发者用的表单工具 - 掘金

 schema-generator: FR的schema的可视化生成器

可视化搭建开源

   

对可视化搭建感兴趣的同学,可以阅读树酱君之前写的 从0到1开发可视化数据大屏 📺

其他开源low-code项目可借鉴, 可视化页面搭建 H5-Dooring

  • 百度 - amis
  • vue-layout
  • 阿里巴巴 - formily
  • 阿里巴巴 - alist
  • 鲁班H5

官网

   JSON Schema | The home of 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 (通用语言).

schema  if else 能力

Applying Subschemas Conditionally — Understanding JSON Schema 2020-12 documentation

翻译: 子模式条件 - JSON Shcema 使用介绍及 Monaco-editor 的 JSON Schema 配置 - 掘金

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

  介绍 | Vue JSON Schema Form

schema生成器

JSON Schema 生成器 | Vue Json schema form   

 json-schema draft 2020-12 的java实现有么? 

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优雅的全局参数校验 - 知乎

相关文章:

入参校验产品化 schema

与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因. 面向技术, 先有对象,再有规则, 如何通过交互来编写schema是个难题? 和json-schema区别: 思路上就是反过来的, 面相产品, schema可视化编辑器, 是面向结构设计. 现有模型,才有数据, 才可以编程. 基于配置…...

【Linux】7、一篇文章学习 Linux 中一些硬核的常用知识

目录 一、systemctl二、软链接三、日期(date 命令)四、Linux 的时区(1) 修改时区(2) ntp 五、IP 地址六、主机名七、域名解析八、配置 Linux 的固定 IP 地址(1) 在 VMwareWorkstation 中配置 IP 地址网关和网段(IP 地址的范围)(2)…...

gpt4-如何使用

gpt-4怎么用 目前,GPT-4尚未发布或公开释放。因此,我们目前无法使用GPT-4。GPT-4是由OpenAI公司开发的人工智能语言模型,其预计能够比先前的版本GPT-3更加强大和智能化,但我们需要等待OpenAI官方发布有关GPT-4的更多信息。 如果您…...

定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现?

定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现? 可以使用linux的计划任务功能crontab来实现定时执行脚本。 具体步骤如下: 编辑crontab计划任务列表: bash crontab -e 这会打开一个文本编辑器,你可以在里面添加计划任务。添加一行计划任务,内容如…...

C++ 设计模式23:访问者模式

C++ 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式...

使用python实现葡萄酒威士忌风味特征分类

聚类威士忌 目的和描述:苏格兰威士忌因其复杂性和多样化的风味而备受推崇。据信,生产它的苏格兰地区具有独特的风味特征。在本案例研究中,我们将根据苏格兰威士忌的风味特征对其进行分类。我们将使用的数据集包含来自几个酿酒厂的精选苏格兰威士忌,我们将尝试将威士忌聚类…...

代理IP(代理服务器)的作用和注意事项

代理IP(也称代理服务器)是一种网络技术,可以用来隐藏用户的真实IP地址并代替其发起网络请求。这种技术在许多场景下都有广泛的应用,如加速网络访问、保护个人隐私、绕过地理限制等。下面将详细介绍代理IP的原理和应用。 原理 代理…...

问题解决 | Failed to initialize NVML: Driver/library version mismatch

问题描述: Ubuntu20.04服务器上,一个docker容器正在训练模型,打开另外一个docker容器时,出现以下错误 Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to st…...

ThinkPHP模型操作上

ThinkPHP模型操作上 前言模型一、创建模型二、模型操作 总结 前言 在mvc架构中,模型的解释是写逻辑代码的地方,其实还可以这样理解,就是一串操作写在一个模型类中,就是你要完成某一项功能,将这个功能的代码写在一个mod…...

053:cesium显示网格切片标识,展示X、Y、Level 坐标

第053个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载瓦片网格切分标识地图。,它在切片方案中的每个渲染图块周围绘制一个框,并在其中绘制一个标签,指示图块的 X、Y、Level 坐标。 这主要用于调试地形和图像渲染问题。 直接复制下面的 vue+cesium源代码,操…...

FPGA基于XDMA实现PCIE X8视频采集HDMI输出 提供工程源码和QT上位机程序和技术支持

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证9、福利:工程代码的获取 1、前言 PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PC…...

简单的redis master slave 配置

只做一个简单的master - slave 配置,新手试炼配置用。使用windows系统 master 配置 redis 默认,密码为空。首先配置redis(for master)的密码。 修改安装目录下的redis.windows.conf文件,搜索到requirepass, # requirepass foob…...

MySQL高级第十七篇:数据库主从复制原理及保证数据一致性

MySQL高级第十七篇:数据库主从复制原理及保证数据一致性 一、概述1. 提升数据库的并发能力2. 主从复制的作用? 二、主从复制原理三、搭建一主一从环境四、如何解决数据一致性问题?1. 方案一、异步复制2. 方案二、半同步复制3. 方案三、组复制…...

PM不想做项目管理了,还能干点啥?

做项目经理太累了! 那么 不做项目经理还能做什么呢? 01 铁锅批发商 毕竟 当项目经理的时候 已经囤积了成百上千口锅 十年背锅经验不是瞎吹 并且可现场演示铁锅烙饼 老板亲授,真实还原,充饥必备 02 Office优化师 当项目…...

Java面试被问Spring哑口无言?100道Spring面试考点解析

对于开发同学来说,Spring 框架熟悉又陌生。 熟悉:开发过程中无时无刻不在使用 Spring 的知识点;陌生:对于基本理论知识疏于整理与记忆。导致很多同学面试时对于 Spring 相关的题目知其答案,但表达不够完整准确。今天展…...

2023年制造业产品经理NPDP认证报名找弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…...

Linux基础命令和基础知识总结

1. 常用文件管理命令介绍 (1) ctrl c: 取消命令,并且换行 (2) ctrl u: 清空本行命令 (3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项 (4) ls: 列出当前目录下所有文件,蓝色的是文件夹&…...

Vue组件-非单文本组件

非单文本组件(用的少) 在vue中,组件是有两种编写格式的,第一种格式叫非单文本组件,第二种格式叫单文本组件 非单文本组件:一个文件中含有多个组件,也叫多文本组件,比如demo.html里面包含js,css… 单文本…...

停车场管理系统的设计与实现_kaic

目 录 1 概 述 1.1研究背景 1.2研究现状 1.3研究内容 2 相关技术简介 2.1 JSP技术 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 3 系统需求分析 3.1 系统可行性分析 3.1.1 操作可行性 3.1.2 经济可行性 3.1.3 技术可行性 3.2 系统性能分析 3.3系统流程分析 3.3.1注册流程 3.3.…...

seleniumUI自动化登录失败案例重新尝试WhileTrue

一个用户每次登录失败,失败N次,无法进入下一url时,怎样会重新尝试N次重新登录呢 ? 我们可以使用wihile true判断,并使用currenturl判断,下面就介绍以下个人的方法 currenturlEGTconfigFile.driver.curren…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...