cap-apps-data-api
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRule: Domo App Platform Data Access (Toolkit-First)
规则:Domo应用平台数据访问(工具优先)
This rule is toolkit/query-first. Use for dataset reads in apps.
@domoinc/queryLegacy endpoint-first guidance has been archived to.archive/legacy-rules/domo-data-api.md
本规则遵循工具/查询优先原则。在应用中读取数据集时请使用。
@domoinc/query旧版的端点优先指南已归档至。archive/legacy-rules/domo-data-api.md
Canonical Query Approach
标准查询方法
1) Use @domoinc/query
for dataset queries
@domoinc/query1) 使用@domoinc/query
进行数据集查询
@domoinc/querybash
yarn add @domoinc/querytypescript
import Query from '@domoinc/query';
const salesByRegion = await new Query()
.select(['region', 'Sales_Amount'])
.groupBy('region', { Sales_Amount: 'sum' })
.orderBy('Sales_Amount', 'descending')
.fetch('sales');bash
yarn add @domoinc/querytypescript
import Query from '@domoinc/query';
const salesByRegion = await new Query()
.select(['region', 'Sales_Amount'])
.groupBy('region', { Sales_Amount: 'sum' })
.orderBy('Sales_Amount', 'descending')
.fetch('sales');2) Keep SQL as exception-only
2) 仅在特殊情况下使用SQL
If you use SQL (), remember it does not automatically respect page filters in dashboards.
SqlClienttypescript
import { SqlClient } from '@domoinc/toolkit';
const sqlClient = new SqlClient();
const result = await sqlClient.get(
'sales',
'SELECT region, SUM(Sales_Amount) AS total FROM sales GROUP BY region'
);
const rows = result.body.rows;如果使用SQL(),请注意它不会自动遵循仪表板中的页面筛选器。
SqlClienttypescript
import { SqlClient } from '@domoinc/toolkit';
const sqlClient = new SqlClient();
const result = await sqlClient.get(
'sales',
'SELECT region, SUM(Sales_Amount) AS total FROM sales GROUP BY region'
);
const rows = result.body.rows;Required Manifest Wiring
必要的清单配置
Every dataset still must be declared in under .
manifest.jsondatasetsMappingjson
{
"datasetsMapping": [
{ "alias": "sales", "dataSetId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "fields": [] }
]
}Critical gotcha:
- must exist (can be
fields) to avoid manifest parsing errors.[]
每个数据集仍必须在的中声明。
manifest.jsondatasetsMappingjson
{
"datasetsMapping": [
{ "alias": "sales", "dataSetId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "fields": [] }
]
}重要注意事项:
- 必须存在(可以是
fields),以避免清单解析错误。[]
Local Development
本地开发
- Use for local API routing.
@domoinc/ryuu-proxy - Authenticate with .
domo login
- 使用进行本地API路由。
@domoinc/ryuu-proxy - 使用进行身份验证。
domo login
Canonical Rules References
标准规则参考
- Query patterns and caveats:
.cursor/rules/03-query.mdc - Performance constraints:
.cursor/rules/10-performance-optimization.mdc - Query gotchas:
.cursor/rules/09-gotchas.mdc
- 查询模式与注意事项:
.cursor/rules/03-query.mdc - 性能约束:
.cursor/rules/10-performance-optimization.mdc - 查询常见问题:
.cursor/rules/09-gotchas.mdc
Checklist
检查清单
- aliases configured and valid
datasetsMapping - Queries implemented with (not raw
Queryby default)/data/v1 - Aggregations use actual dataset field names
- not used
.aggregate()
- 已配置并验证别名
datasetsMapping - 使用实现查询(默认不使用原生
Query)/data/v1 - 聚合操作使用实际的数据集字段名
- 未使用方法
.aggregate()