# API 参考 PyLine 提供了完整的 RESTful API 接口,用于管理时间线、节点、边和路由。 ## 基础 URL 所有 API 端点的基础 URL 为:`http://localhost:5000/api/` ## API 命名空间 ### Timeline API 用于时间线的 CRUD 操作和导出功能。 #### 创建时间线 - **URL**: `/timeline/` - **方法**: `POST` - **请求体**: `{"name": "时间线名称", "description": "时间线描述"}` - **响应**: 时间线对象 #### 获取时间线列表 - **URL**: `/timeline/` - **方法**: `GET` - **响应**: 时间线列表 #### 获取单个时间线 - **URL**: `/timeline/{timeline_id}` - **方法**: `GET` - **响应**: 时间线对象 #### 更新时间线 - **URL**: `/timeline/{timeline_id}` - **方法**: `PUT` - **请求体**: 更新的时间线数据 - **响应**: 更新后的时间线对象 #### 删除时间线 - **URL**: `/timeline/{timeline_id}` - **方法**: `DELETE` - **响应**: 成功消息 ### Nodes API 用于节点和边的管理。 #### 添加节点 - **URL**: `/nodes/{timeline_id}` - **方法**: `POST` - **请求体**: 节点数据 - **响应**: 更新后的时间线 #### 批量更新节点 - **URL**: `/nodes/{timeline_id}/batch` - **方法**: `PUT` - **请求体**: 节点列表 - **响应**: 更新后的时间线 #### 更新节点 - **URL**: `/nodes/{timeline_id}/{node_id}` - **方法**: `PUT` - **请求体**: 更新的节点数据 - **响应**: 更新后的时间线 #### 删除节点 - **URL**: `/nodes/{timeline_id}/{node_id}` - **方法**: `DELETE` - **响应**: 更新后的时间线 #### 添加边 - **URL**: `/nodes/{timeline_id}/edge` - **方法**: `POST` - **请求体**: 边数据 - **响应**: 更新后的时间线 #### 删除边 - **URL**: `/nodes/{timeline_id}/edge` - **方法**: `DELETE` - **请求体**: 边数据 - **响应**: 更新后的时间线 ### Routes API 用于路由的管理。 #### 创建路由 - **URL**: `/routes/{timeline_id}` - **方法**: `POST` - **请求体**: 路由数据 - **响应**: 创建的路由 #### 获取路由 - **URL**: `/routes/{timeline_id}/{route_id}` - **方法**: `GET` - **响应**: 路由对象 #### 添加路由依赖 - **URL**: `/routes/{timeline_id}/{route_id}/dependency` - **方法**: `POST` - **请求体**: 依赖数据 - **响应**: 更新后的路由 #### 验证路由 - **URL**: `/routes/{timeline_id}/{route_id}/validate` - **方法**: `GET` - **响应**: 验证结果 ## 数据模型 ### Timeline ```json { "id": "string", "name": "string", "description": "string", "nodes": [{"id": "string", "type": "string", "data": {}}], "edges": [{"id": "string", "source": "string", "target": "string"}], "created_at": "datetime", "updated_at": "datetime" } ``` ### Node ```json { "id": "string", "type": "string", "position": {"x": 0, "y": 0}, "data": {"label": "string", "condition": "string"} } ``` ### Edge ```json { "id": "string", "source": "string", "target": "string", "type": "string" } ```