API 提供表单数据接口文档
本接口用于提供前端表单数据的读取、提交和管理功能,支持通过 HTTP 请求获取表单结构、提交表单数据以及校验表单字段,适用于需要动态生成表单或处理用户输入数据的场景。
请求参数说明
获取表单结构
接口地址:/api/form/structure
请求方式:GET
参数说明:
| 参数名 | 类型 | 必填 | 描述 | 示例值 |
|————–|——–|——|————————–|—————-|
| form_id
| string | 是 | 表单唯一标识符 | user_register
|
| lang
| string | 否 | 语言版本(默认中文) | zh-CN
|
| fields_only
| bool | 否 | 是否仅返回字段结构(不含样式) | true
|
示例请求:
curl "https://api.example.com/api/form/structure?form_id=user_register&lang=zh-CN"
提交表单数据
接口地址:/api/form/submit
请求方式:POST
请求体(JSON 格式):
| 字段名 | 类型 | 必填 | 描述 | 示例值 |
|————-|———|——|————————–|——————————-|
| form_id
| string | 是 | 表单唯一标识符 | order_create
|
| data
| object | 是 | 表单字段键值对 | {"name": "张三", "age": 25}
|
| timestamp
| int | 否 | 提交时间戳(秒级) | 1698765420
|
示例请求:
import requests response = requests.post("https://api.example.com/api/form/submit", json={ "form_id": "order_create", "data": { "product_id": "12345", "quantity": 2, "address": "北京市朝阳区" } })
响应数据结构
成功响应
状态码:200 OK
响应体(JSON 格式):
| 字段名 | 类型 | 描述 | 示例值 |
|————-|———|————————–|——————————-|
| code
| int | 状态码(0 表示成功) | 0
|
| message
| string | 状态描述 | "提交成功"
|
| data
| object | 返回数据(根据接口不同) | {"form_id": "order_create"}
|
错误响应
状态码:400/404/500
响应体(JSON 格式):
| 字段名 | 类型 | 描述 | 示例值 |
|————-|———|————————–|——————————-|
| code
| int | 错误码(非0) | 404
|
| message
| string | 错误描述 | "表单不存在"
|
| details
| string | 详细信息(可选) | "form_id: user_login 未找到"
|
常见问题与解答
问题1:如何获取表单的所有字段及其类型?
解答:
调用 /api/form/structure
接口时,设置 fields_only=true
,返回结果中会包含字段名称、类型、是否必填等信息。
{ "code": 0, "data": { "fields": [ {"name": "username", "type": "string", "required": true}, {"name": "age", "type": "number", "required": false} ] } }
问题2:如何避免重复提交同一表单数据?
解答:
- 前端需在提交后禁用重复点击按钮;
- 后端可通过
form_id + user_id
生成唯一键,结合缓存(如 Redis)实现短时间去重; - 接口返回状态码时,若检测到重复提交,返回
409 Conflict
状态
各位小伙伴们,我刚刚为大家分享了有关“api 提供表单的数据”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复