alibaba / formily

📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3
https://formilyjs.org/
MIT License
11.36k stars 1.48k forks source link

[Feature Request] formily schema转规范的json schema #3945

Closed sparksofire closed 7 months ago

sparksofire commented 1 year ago

What problem does this feature solve?

希望能够把formily schema转规范的json schema,后端可以用schema库对数据进行校验和son数据解析。有什么方案吗,只能自己遍历字段处理吗

What does the proposed API look like?

null

iamdin commented 1 year ago

我理解 Formily 对 JSON Schema 做了两点扩展:

  1. JSON-Schema 属性:统一以 x-* 格式来表达扩展属性;
  2. JSON-Schema 类型:新增一个 void 属性代表一个虚数据节点,用于定义 UI 容器;

所以你针对这两个 Case 处理一下就好了,甚至可以不解析扩展属性,只针对 void 进行处理就好了

https://formilyjs.org/zh-CN/guide#%E5%8D%8F%E8%AE%AE%E9%A9%B1%E5%8A%A8

sparksofire commented 1 year ago

我理解 Formily 对 JSON Schema 做了两点扩展:

  1. JSON-Schema 属性:统一以 x-* 格式来表达扩展属性;
  2. JSON-Schema 类型:新增一个 void 属性代表一个虚数据节点,用于定义 UI 容器;

所以你针对这两个 Case 处理一下就好了,甚至可以不解析扩展属性,只针对 void 进行处理就好了

https://formilyjs.org/zh-CN/guide#%E5%8D%8F%E8%AE%AE%E9%A9%B1%E5%8A%A8

单独看协议的话是这样的,但实际生成的schema也会一些小差别,比如数字类型都是number,没有使用int和float类型,后端在使用的时候就需要做转换

fwgood commented 10 months ago

我理解 Formily 对 JSON Schema 做了两点扩展:

  1. JSON-Schema 属性:统一以 x-* 格式来表达扩展属性;
  2. JSON-Schema 类型:新增一个 void 属性代表一个虚数据节点,用于定义 UI 容器;

所以你针对这两个 Case 处理一下就好了,甚至可以不解析扩展属性,只针对 void 进行处理就好了

https://formilyjs.org/zh-CN/guide#%E5%8D%8F%E8%AE%AE%E9%A9%B1%E5%8A%A8

对required字段的处理,和标准json-schema也是不一致的,自己case by case解决的话,总会有遗漏的