http://47.108.80.98:8001/api/v1application/jsonPOST /auth/login
请求体:
{
"username": "admin",
"password": "admin123"
}
响应:
{
"code": 200,
"message": "success",
"data": {
"accessToken": "eyJhbGciOiJIUzM4NCJ9...",
"refreshToken": "...",
"expiresIn": 86400
}
}
GET /projects?page=1&size=20
响应:
{
"code": 200,
"data": {
"records": [
{
"id": 10,
"projectKey": "PRJ-2024-001",
"projectName": "成都院安全生产标准化复审",
"status": "active",
"createdAt": "2024-01-01T00:00:00"
}
],
"total": 1
}
}
GET /projects/{projectId}
GET /projects/{projectId}/elements
响应:
{
"code": 200,
"data": [
{
"id": 701,
"elementKey": "project.reviewObject",
"elementName": "评审对象",
"elementType": "text",
"namespace": "project"
}
]
}
GET /projects/{projectId}/values
响应:
{
"code": 200,
"data": [
{
"valueId": 801,
"elementKey": "PRJ-2024-001:project.reviewObject",
"valueText": "中国电建集团成都勘测设计研究院有限公司",
"isFilled": true
}
]
}
PUT /projects/{projectId}/values/{elementKey}
请求体:
{
"valueText": "新的要素值"
}
GET /projects/{projectId}/attachments
响应:
{
"code": 200,
"data": [
{
"id": 2367,
"displayName": "附件8 工作方案.zip",
"fileName": "att08-工作方案.zip",
"fileKey": "uuid-xxx",
"fileType": "zip",
"fileSize": 312859,
"parseStatus": "completed"
}
]
}
POST /projects/{projectId}/attachments
Content-Type: multipart/form-data
表单字段:
file: 文件displayName: 显示名称(可选)响应:
{
"code": 200,
"data": {
"attachmentId": 2367,
"attachmentKey": "ATT-1234567890-123",
"fileKey": "uuid-xxx"
}
}
DELETE /attachments/{attachmentId}
GET /files/{fileKey}
响应: 文件二进制流
POST /attachments/{attachmentId}/parsed-content
请求体:
{
"content": "解析后的 HTML 或 Markdown 内容"
}
GET /projects/{projectId}/rules
响应:
{
"code": 200,
"data": [
{
"id": 2301,
"ruleName": "评审对象全称",
"elementKey": "project.reviewObject",
"ruleType": "auto",
"actionType": "summary",
"actionConfig": "{\"description\": \"...\"}",
"description": "来源:工作方案",
"status": "active",
"inputs": [
{
"inputId": 3779,
"ruleId": 2301,
"sourceNodeId": 2367,
"inputKey": "attachment",
"inputName": "附件8 工作方案.zip",
"inputType": "ATTACHMENT",
"entryPath": "成都院本部...复审工作方案.pdf",
"sourceText": "来源段落文本...",
"sourceType": "ATTACHMENT",
"sourceName": "附件8 工作方案.zip",
"sortOrder": 0
}
]
}
]
}
GET /rules/{ruleId}
POST /projects/{projectId}/rules
请求体:
{
"elementKey": "project.reviewObject",
"ruleName": "评审对象全称",
"ruleType": "auto",
"actionType": "summary",
"actionConfig": "{\"description\": \"...\"}",
"dslContent": "规则描述",
"description": "来源:工作方案",
"inputs": [
{
"sourceNodeId": 2367,
"inputKey": "attachment",
"inputType": "ATTACHMENT",
"inputName": "附件8 工作方案.zip",
"entryPath": "folder/file.pdf",
"sourceText": "来源段落文本"
}
]
}
PUT /rules/{ruleId}
请求体: 同创建规则
DELETE /rules/{ruleId}
POST /rules/{ruleId}/execute
响应:
{
"code": 200,
"data": {
"ruleId": 2301,
"status": "success",
"outputText": "执行结果",
"elementKey": "project.reviewObject",
"valueUpdated": true,
"duration": 1234
}
}
POST /projects/{projectId}/rules/execute-all
POST /files/upload
Content-Type: multipart/form-data
表单字段:
file: 文件响应:
{
"code": 200,
"data": {
"fileKey": "uuid-xxx",
"fileName": "file.pdf",
"fileSize": 12345,
"fileUrl": "/files/uuid-xxx"
}
}
GET /files/{fileKey}
| 字段 | 类型 | 说明 |
|---|---|---|
sourceNodeId |
Long | 来源节点 ID(附件 ID) |
inputKey |
String | 输入键(如 "attachment") |
inputType |
String | 输入类型(ATTACHMENT, VALUE, FIXED) |
inputName |
String | 输入名称(附件显示名) |
entryPath |
String | ZIP 内文件路径(如 "folder/file.pdf") |
sourceText |
String | 来源段落/摘要文本 |
fixedValue |
String | 固定值(当 inputType=FIXED 时) |
| 类型 | 说明 |
|---|---|
text |
短文本(单行) |
paragraph |
段落(多行长文本) |
table |
表格 |
| 类型 | 说明 |
|---|---|
quote |
直接引用 |
summary |
AI 总结 |
table_extract |
表格提取 |
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未授权(Token 无效或过期) |
| 403 | 禁止访问 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
# 1. 登录获取 Token
TOKEN=$(curl -s -X POST "$BASE/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}' | jq -r '.data.accessToken')
# 2. 上传附件
curl -X POST "$BASE/projects/10/attachments" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@工作方案.zip" \
-F "displayName=附件8 工作方案.zip"
# 3. 创建规则并关联附件
curl -X POST "$BASE/projects/10/rules" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"elementKey": "project.reviewObject",
"ruleName": "评审对象全称",
"actionType": "summary",
"inputs": [{
"sourceNodeId": 2367,
"inputKey": "attachment",
"inputType": "ATTACHMENT",
"inputName": "附件8 工作方案.zip",
"entryPath": "成都院本部...复审工作方案.pdf"
}]
}'