标准化接口-操作/图表/收藏

要对记录执行自定义操作按钮、批量操作、取图表数据、或收藏/取消收藏时读这篇

06-二次开发 / API参考 / 标准化接口
actionmulti_action批量操作echart图表EChartsfavorite收藏取消收藏重定向302操作按钮

操作 / 图表 / 收藏接口

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)
最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki