spacetimedb-http について
SpacetimeDB の HTTP ルートへのリクエスト構築と動作を扱うスキルです。ID、データベース、SQL、ログ、認証、WebSocket サブスクリプションの各エンドポイントを網羅します。
主な機能
- 01認証と Bearer トークン
- 02ID とデータベースのエンドポイント
- 03Reducer と SQL のリクエスト
- 04スキーマとログの取得
- 05WebSocket サブスクリプションルート
活用シーン
- 01HTTP による SpacetimeDB Reducer の呼び出し
- 02SQL の実行とデータベーススキーマの取得
- 03カスタムサブスクリプションツールの構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-httpインストール後、Claude Code で/spacetimedb-httpを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/http-authorization.mdhttp-database.mdhttp-identity.md詳細
このスキルは、SpacetimeDB の HTTP ルートの動作とリクエストの構築に使用します。
HTTP の基本パターン
- ほとんどの HTTP エンドポイントでは、
Authorization: Bearer <token>を指定します。指定しない場合、データベースのエンドポイントは通常、匿名 ID を割り当てるか使用し、パブリックテーブルへのアクセスのみを許可します。 POST /v1/identityは{ "identity": string, "token": string }を返します。POST /v1/database/:name_or_identity/call/:reducerは、リデューサーまたはプロシージャを呼び出します。リクエスト本文は引数の JSON 配列です。POST /v1/database/:name_or_identity/sqlは、;で区切られた 1 つ以上の SQL ステートメントを実行し、schemaとrowsを含むステートメント結果の JSON を返します。GET /v1/database/:name_or_identity/schema?version=...はRawModuleDefの JSON を返し、spacetime describeに対応します。GET /v1/database/:name_or_identity/logsにはデータベースの所有権が必要で、spacetime logsに対応します。- WebSocket サブスクリプションでは、
v1.bsatn.spacetimedbまたはv1.json.spacetimedbサブプロトコルを使用して/v1/database/:name_or_identity/subscribeに接続します。カスタムツールを構築する場合を除き、SDK の使用を推奨します。
リクエスト時の注意事項
- 管理エンドポイントは主にツール、デバッグ、管理用です。通常のアプリケーショントラフィックには SDK の WebSocket クライアントを使用してください。
- 匿名の HTTP リデューサー呼び出しでは、匿名 ID が
ReducerContextに渡されます。モジュールの認証ロジックによって拒否される場合があります。 - 匿名ユーザーからの HTTP SQL ではパブリック行のみが表示され、RLS が適用されます。
- 複雑なクエリー文字列を記述する前に、SQL 構文の質問を spacetimedb-sql に回してください。
リファレンスマップ
| 必要な情報 | 参照先 |
|---|---|
| 認証ヘッダーと ping | references/http-authorization.md |
| データベースのエンドポイント | references/http-database.md |
| ID のエンドポイント | references/http-identity.md |
ガイダンス
- エンドポイントの例を示す際は、必要なベアラートークンの動作を含めてください。
- SQL 構文に関する質問は spacetimedb-sql に回してください。
- SDK 接続に関する質問は spacetimedb-clients に回してください。
コメント
Markdown 対応