操作 / 图表 / 收藏接口
URL 中的 $view 为路由前缀(如 /pipeline_modelview/api),见 01-通用约定与路径对照.md。
7. 单条操作 action
对单条记录执行指定的 action 操作(action 列表可通过 _info 接口的 action 字段获取)。
GET http://x.x.x.x/$view/api/action/<action_name>/<id>
路径参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| action_name | string | 操作名称(在视图类中通过 @action 装饰器定义) |
| id | int | 记录主键 |
响应示例(成功):
{"status": 0, "message": "success", "result": {}}
响应示例(失败):
{"status": -1, "message": "操作失败原因", "result": {}}
说明:
- action 可能返回 HTTP 302 重定向(当
action.icon == 'url'时),此时 Response 直接返回,不包裹 JSON - 异常时返回 HTTP 500,status 为 -1
- 路由定义见
myapp/views/baseApi.py:1578(/action/<string:name>/<int:pk>)
8. 批量操作 multi_action
对多条记录批量执行指定 action 操作。
POST http://x.x.x.x/$view/api/multi_action/<action_name>
Content-Type: application/json
路径参数: action_name(string)操作名称。
请求体(JSON):
{"ids": [1, 2, 3]}
响应示例(成功):
{"status": 0, "message": "success", "result": {}}
响应示例(失败):
{"status": -1, "message": "操作失败原因", "result": {}}
说明:
- ids 中不存在的记录会被自动过滤,不会报错
- action 返回字符串时用作 message 内容
- 同样支持 HTTP 302 重定向返回
- 路由定义见
myapp/views/baseApi.py:1609(/multi_action/<string:name>)
9. 图表数据 echart
获取当前视图的图表可视化数据(需视图类开启 enable_echart = True)。
GET http://x.x.x.x/$view/api/echart
请求参数(Query,通过 form_data 传递):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filters | array | 否 | 过滤条件,格式同 list 接口 |
响应示例:
{
"status": 0,
"message": "success",
"result": {
"title": {"text": "资源使用趋势"},
"xAxis": {"type": "category", "data": ["Mon", "Tue", "Wed"]},
"yAxis": {"type": "value"},
"series": [
{"name": "CPU", "type": "line", "data": [10, 20, 30]}
]
}
}
说明:
- result 内容为 ECharts 配置对象,可直接用于 ECharts 渲染
- 不同视图返回的图表配置由各自的
echart_option(filters)方法定义 - filters 会被转换为
{column_name: [value1, value2, ...]}格式传给后端方法 - 若视图未开启 echart 或返回空,响应为
{} - 路由定义见
myapp/views/baseApi.py:1656(/echart)
10. 收藏 / 取消收藏 favorite
收藏或取消收藏一条记录(需视图类开启 enable_favorite = True)。
POST http://x.x.x.x/$view/api/favorite/<id> # 收藏
DELETE http://x.x.x.x/$view/api/favorite/<id> # 取消收藏
路径参数: id(int)记录主键。
收藏响应(POST,HTTP 200):
{"status": "success", "message": "favorite success", "result": ""}
取消收藏响应(DELETE,HTTP 200):
{"status": "success", "message": "unfavorite success", "result": ""}
错误响应(记录不存在或无权限,POST 时 HTTP 404):
{"status": "fail", "message": "target not exist or no permission", "result": ""}
说明:
- 注意 favorite 接口的
status是字符串"success"/"fail",而非其它接口的数字 0 / -1 - 收藏操作是幂等的:重复收藏不报错,仅创建一次记录
- 取消收藏也是幂等的:不存在的收藏记录不报错
- 收藏数据存储在
Favorite表,按(model_name, row_id, user_id)区分;其中model_name取该视图模型的__tablename__ - 路由与逻辑见
myapp/views/baseApi.py:1893(/favorite/<pk>,methods=POST/DELETE)