data-api について
Domo App Platform アプリのデータアクセス規約を説明するスキルです。データセットの読み取りには @domoinc/query を標準とし、マニフェスト設定とローカル開発要件も扱います。
主な機能
- 01@domoinc/query によるデータセット照会
- 02SQL の例外的な利用
- 03manifest.json でのデータセット宣言
- 04ローカル API ルーティングに ryuu-proxy を使用
- 05domo login によるローカル認証
活用シーン
- 01グループ化・ソート付きのデータセット照会を実装
- 02アプリ用のデータセットエイリアスを設定
- 03ローカル開発で Domo API を利用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ stahura/ domo-ai-vibe-rules --skill data-apiインストール後、Claude Code で/data-apiを入力して読み込まれたか確認します。
詳細
ルール:Domo App Platform のデータアクセス(ツールキット優先)
このルールは、ツールキット/クエリ優先です。アプリでデータセットを読み取るには、@domoinc/query を使用してください。
基本となるクエリアプローチ
1) データセットのクエリには @domoinc/query を使用する
yarn add @domoinc/query
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) SQL は例外としてのみ使用する
SQL(SqlClient)を使用する場合は、ダッシュボードのページフィルターが自動的に適用されないことに注意してください。
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;
必須のマニフェスト設定
すべてのデータセットを引き続き manifest.json の datasetsMapping に宣言する必要があります。
{
"datasetsMapping": [
{ "alias": "sales", "dataSetId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "fields": [] }
]
}
重要な注意点:
- マニフェストの解析エラーを避けるため、
fieldsが存在している必要があります([]でも構いません)。
ローカル開発
- ローカルでの API ルーティングには
@domoinc/ryuu-proxyを使用してください。 domo loginで認証してください。
チェックリスト
-
datasetsMappingのエイリアスが設定され、有効である - クエリが
Queryを使用して実装されている(デフォルトで生の/data/v1を使用していない) - 集計で実際のデータセットのフィールド名を使用している
-
.aggregate()を使用していない
コメント
Markdown 対応