3.3 KiB
3.3 KiB
FMS API 详细参数参考
DataController 端点参数
POST /data/loaddata
Body: {
"view_name": "string (required) — 表名或视图名",
"search_condition": "string (optional) — WHERE 条件表达式,如 b_id = 1 AND b_name LIKE N'%关键词%'",
"order_by": "string (optional) — 排序,如 b_id ASC 或 b_xh ASC, b_id DESC",
"search_columns": ["string"] (optional) — 查询列,默认 *"
}
Response: { code: 0, message: "操作成功", data: [{...row}] }
POST /data/page
Body: {
"view_name": "string (required)",
"order_by": "string (required) — 支持逗号分隔多字段",
"page_no": int (optional, default 1),
"page_size": int (optional, default 20),
"search_condition": "string (optional)",
"search_columns": ["string"] (optional)
}
Response: {
code: 0,
data: {
rows: [{...row}],
row_count: int,
total: int,
page_no: int,
page_size: int
}
}
POST /data/saveobjt
Body: [{
"table": "string (required) — 目标表名",
"key_field": "string (required) — 主键字段名,通常为 b_id",
"inserts": [{...row}] (optional) — 新增行,key_field 值 < 0 时自动分配雪花ID",
"updates": [{...row}] (optional) — 修改行,必须包含 key_field 值",
"deletes": [{...row}] (optional) — 删除行,必须包含 key_field 值",
}]
Response: { code: 0, message: "操作成功", data: null }
执行顺序:deletes → updates → inserts。整体在一个事务中。
POST /data/loaddatabysql
Body: { "sql": "string (required) — 仅允许 SELECT 或 WITH 开头" }
Response: { code: 0, data: [{...row}] }
安全检查:
- 必须以 SELECT 或 WITH 开头
- 禁止 INSERT/UPDATE/DELETE/DROP/ALTER/CREATE/EXEC/GRANT 等 DML/DDL
- 禁止 SQL 注释(
--、/* */) - 禁止分号
GET /data/nextid
Query: ?count=int (optional, default 1)
Response: {
code: 0,
data: "1234567890123456" (count=1) | ["id1", "id2"] (count>1)
}
GET /data/nextcode
Query: ?moduleId=long&count=int (optional, default 1)
Response: {
code: 0,
data: "PREFIX2025080200001" (count=1) | ["code1", "code2"] (count>1)
}
POST /data/describe
Body: { "table": "string" }
Response: { code: 0, data: [{ name: "b_id", type: "bigint", nullable: false, size: 19 }] }
AuthController
POST /auth/login
Body: {
"orgid": "string (required) — 机构码",
"userid": "string (required) — 账号",
"password": "string (optional) — 密码"
}
Response (成功): {
code: 0,
data: {
token: "eyJ...",
orgid: "ORG001",
user: { id: 1001, account: "admin", name: "管理员" }
}
}
Response (失败): { code: 401, message: "机构码、账号或密码错误" }
FileController
GET /file/config
Response: { code: 0, data: { storageType: "local" | "aliyun-oss" } }
POST /file/upload (local 模式)
Content-Type: multipart/form-data
Fields: { files: File[], father: string, moduleId: string, cateId?: string }
Response: { code: 0, data: [{...fileRecord}] }
POST /file/upload-credential (OSS 模式)
Response: { code: 0, data: { accessId, accessKey, host, policy, signature, expire } }
POST /file/save-record (OSS 回调)
Body: { subid: string, father: string, mx_moduleid: string, mx_cate_id?: string }
POST /file/delete
Body: { subid: string }