项目端点
使用 /projects 端点来创建、查询、更新和删除 SkillFlaw 项目。
所有已认证的项目端点都要求项目 scope。
至少需要提供 tenant-id 头;如果是业务域上下文,还需要提供 business-id;个人上下文下 is-self 默认是 true。
读取项目列表
获取当前 scope 下可见的项目列表:
_10curl -X GET \_10 "$SKILLFLAW_URL/api/v1/projects/" \_10 -H "accept: application/json" \_10 -H "x-api-key: $SKILLFLAW_API_KEY" \_10 -H "tenant-id: $TENANT_ID"
结果
_12[_12 {_12 "name": "Starter Project",_12 "description": "Manage your own projects. Download and upload projects.",_12 "id": "1415de42-8f01-4f36-bf34-539f23e47466",_12 "parent_id": null,_12 "tenant_id": "3c0f3b3d-4d37-4f35-9a4a-b0f2db7c9f10",_12 "business_id": 0,_12 "is_online": false,_12 "creator_name": "skillflaw"_12 }_12]
创建项目
_11curl -X POST \_11 "$SKILLFLAW_URL/api/v1/projects/" \_11 -H "Content-Type: application/json" \_11 -H "x-api-key: $SKILLFLAW_API_KEY" \_11 -H "tenant-id: $TENANT_ID" \_11 -d '{_11 "name": "new_project_name",_11 "description": "Project discovery note",_11 "components_list": [],_11 "flows_list": []_11}'
如果你想在创建项目时同时加入组件与流程,可以分别从:
取到 components_list 与 flows_list 的值后再一起提交。
把流程加入项目时,流程会从原位置移动到该项目下,而不是复制一份。
读取单个项目
_10curl -X GET \_10 "$SKILLFLAW_URL/api/v1/projects/$PROJECT_ID" \_10 -H "accept: application/json" \_10 -H "x-api-key: $SKILLFLAW_API_KEY" \_10 -H "tenant-id: $TENANT_ID"
如果你显式提供 page 和 size 等分页参数,响应结构会变成:
_10{ "project": { ... }, "flows": { ...pagination... } }
更新项目
_17curl -X PATCH \_17 "$SKILLFLAW_URL/api/v1/projects/b408ddb9-6266-4431-9be8-e04a62758331" \_17 -H "accept: application/json" \_17 -H "Content-Type: application/json" \_17 -H "x-api-key: $SKILLFLAW_API_KEY" \_17 -H "tenant-id: $TENANT_ID" \_17 -d '{_17 "name": "updated_project_name",_17 "description": "Updated discovery note",_17 "parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",_17 "components": [_17 "3fa85f64-5717-4562-b3fc-2c963f66afa6"_17 ],_17 "flows": [_17 "3fa85f64-5717-4562-b3fc-2c963f66afa6"_17 ]_17}'
每次 PATCH 都只会更新你显式提交的字段。
删除项目
_10curl -X DELETE \_10 "$SKILLFLAW_URL/api/v1/projects/$PROJECT_ID" \_10 -H "accept: */*" \_10 -H "x-api-key: $SKILLFLAW_API_KEY" \_10 -H "tenant-id: $TENANT_ID"
导出项目
将某个项目下的所有流程打包下载为 ZIP。 导出时,SkillFlaw 会在打包前剥离流程 JSON 中的 API Key。
_10curl -X GET \_10 "$SKILLFLAW_URL/api/v1/projects/download/$PROJECT_ID" \_10 -H "accept: application/json" \_10 -H "x-api-key: $SKILLFLAW_API_KEY" \_10 -H "tenant-id: $TENANT_ID" \_10 --output skillflaw-project-flows.zip
导入项目
通过上传 JSON 文件导入一个项目定义:
_10curl -X POST \_10 "$SKILLFLAW_URL/api/v1/projects/upload/" \_10 -H "accept: application/json" \_10 -H "Content-Type: multipart/form-data" \_10 -H "x-api-key: $SKILLFLAW_API_KEY" \_10 -H "tenant-id: $TENANT_ID" \_10 -F "file=@project-import.json;type=application/json"
上传文件必须包含:
project_nameproject_descriptionflows
注意:当前后端不能直接消费 GET /api/v1/projects/download/{project_id} 返回的 ZIP 作为导入输入。
示例 project-import.json:
_14{_14 "project_name": "Imported Project",_14 "project_description": "Imported project discovery note",_14 "flows": [_14 {_14 "name": "Imported Flow",_14 "description": "Imported flow description",_14 "data": {_14 "nodes": [],_14 "edges": []_14 }_14 }_14 ]_14}
其他项目相关端点
/api/v1/projects 还额外暴露了与在线调用、技能关系、授权关系和绑定状态有关的端点,例如:
POST /api/v1/projects/{project_id}/invokeGET|POST|DELETE /api/v1/projects/{project_id}/skillsGET /api/v1/projects/{project_id}/skills/{skill_id}/downloadGET|POST|DELETE /api/v1/projects/{project_id}/auth/usersGET|POST|DELETE /api/v1/projects/{project_id}/auth/groupsGET|POST|DELETE /api/v1/projects/{project_id}/auth/orgsPOST|DELETE /api/v1/projects/{project_id}/bind