当前位置: 首页 > 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…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...