如何通过REST API获取Directus仪表盘面板的数值指标?
问题描述
我想要获取Directus仪表盘某一面板的数值指标,调用接口 http://localhost:8055/panels/25c85ee7-a85d-4bbe-b00a-c2b125e38793 后得到如下响应,但响应里只有面板的配置信息,没有显示的数值指标数据,请问怎么才能获取这些数据?
响应内容:
{ "data": { "id": "25c85ee7-a85d-4bbe-b00a-c2b125e38793", "dashboard": "bb51de5f-bf0b-49d2-a11d-5e74814f6d8c", "name": null, "icon": null, "color": null, "show_header": false, "note": null, "type": "list", "position_x": 1, "position_y": 15, "width": 15, "height": 15, "options": { "collection": "payment", "sortField": null, "displayTemplate": "{{amount}}", "linkToItem": true }, "date_created": "2023-04-19T08:06:56.703Z", "user_created": "2e7fd8ab-e700-49e7-aa12-09a885d1fd42" } }
解决方案
你调用的 /panels/{panel-id} 接口本身只返回面板的配置元数据,不包含实际展示的业务数据。要获取面板的数值指标,有两种直接的方式:
1. 调用面板专属数据接口
Directus 提供了专门用于获取面板渲染数据的端点,直接请求:
GET http://localhost:8055/panels/25c85ee7-a85d-4bbe-b00a-c2b125e38793/data
这个接口会根据面板的配置(比如你这里的 payment 集合、amount 字段)自动返回对应的数据,和仪表盘上展示的内容完全一致。
2. 直接查询对应集合的业务数据
从面板配置的 options 里可以看到,这个面板关联的是 payment 集合,展示的是 amount 字段。你可以直接调用 items 接口查询该集合的数据,甚至按需做聚合统计:
- 查询所有
payment记录的amount字段:GET http://localhost:8055/items/payment?fields=amount - 如果需要统计数值(比如总和),使用聚合参数:
这样会返回GET http://localhost:8055/items/payment?aggregate[sum][amount]=*&limit=0amount字段的总和,适合数值类面板的指标需求。
内容的提问来源于stack exchange,提问作者erdem
相关产品推荐
相关产品推荐

