iii-http-endpoints について
iii エンジンで受信 HTTP ルートを実装するためのスキルです。ルート登録、リクエスト処理、レスポンス構成を扱い、JavaScript、Python、Rust の例を収録しています。
主な機能
- 01パスとメソッドによるルート登録
- 02リクエスト本文とパスパラメーターの取得
- 03ステータス、本文、ヘッダーの設定
- 043 言語の実装例
活用シーン
- 01iii での REST API 構築
- 02GET と POST リクエストの処理
- 03リソース識別子を含むルートの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iii-hq/ skills --skill iii-http-endpointsインストール後、Claude Code で/iii-http-endpointsを入力して読み込まれたか確認します。
詳細
HTTP エンドポイント
類似技術:Express、Fastify、Flask
主な概念
タスクに合う場合は、以下の概念を使用します。すべての HTTP エンドポイントで、これらすべてが必要になるわけではありません。
- 各ルートは、HTTP トリガーを介してパスとメソッドにバインドされた登録済み関数です
- ハンドラーは、
body、path_params、headers、methodを含むApiRequestオブジェクトを受け取ります - ハンドラーは
{ status_code, body, headers }を返し、HTTP レスポンスを構成します - RestApiModule は、ポート 3111 で登録済みのすべてのルートを提供します
- パスパラメーターにはコロン構文(例:
/users/:id)を使用し、path_paramsに格納されます
アーキテクチャ
HTTP リクエスト
→ RestApiModule(ポート 3111)
→ registerTrigger によるルート照合(メソッド + パス)
→ registerFunction ハンドラー(ApiRequest を受け取る)
→ { status_code, body, headers } レスポンス
iii で使用するプリミティブ
| プリミティブ | 目的 |
|---|---|
registerFunction | ルートのハンドラーを定義する |
registerTrigger({ type: 'http' }) | ルートのパスとメソッドを関数にバインドする |
config: { api_path: '/path', http_method: 'GET' } | トリガーのルート設定 |
リファレンス実装
../references/http-endpoints.js で完全な動作例をご覧ください。GET リクエストと POST リクエストを処理する、パラメーター化されたルートを備えた REST API です。
Python 版もあります:../references/http-endpoints.py
Rust 版もあります:../references/http-endpoints.rs
よくあるパターン
このパターンを使用するコードには、該当する場合、一般に以下が含まれます。
registerWorker(url, { workerName })— ワーカーの初期化registerFunction(id, handler)— ルートハンドラーの定義registerTrigger({ type: 'http', config: { api_path, http_method } })— パスとメソッドのバインドreq.body— POST/PUT リクエストの解析済みリクエストボディreq.path_params— 抽出されたパスパラメーターreturn { status_code: 200, body: { data }, headers: { 'Content-Type': 'application/json' } }— レスポンスの形式const logger = new Logger()— 各ハンドラーでの構造化ログ記録
このパターンの適用
タスクに当てはまる場合は、以下の方法で適用します。
- 異なるパスまたはメソッドで関数と HTTP トリガーを追加登録して、ルートを追加します
- リソース識別子には
path_paramsを使用します(例:/orders/:orderId) - 適切なステータスコードを返します(作成時は 201、見つからない場合は 404、不正な入力の場合は 400)
- 認証が必要なルートでは、
req.headersを調べてトークンまたは API キーを確認します - エンドポイントの後続処理をつなぐには、202 Accepted を返した後にキューへ登録します
パターンの境界
- タスクが iii 関数から外部 HTTP API を呼び出す内容である場合は、
iii-http-invoked-functionsを優先します。 - エンドポイントの背後で非同期処理が必要な場合は、バックグラウンド処理に
iii-queue-processingを優先します。 - iii がルートを所有し、受信リクエストを直接処理する場合は、
iii-http-endpointsを使用します。
使用する場面
- タスクの主な内容が iii エンジンにおける
iii-http-endpointsである場合に、このスキルを使用します。 - リクエストでこのパターンまたは同等の実装が直接求められた場合に適用します。
境界
- 無関係なタスクに対する汎用的な代替手段として、このスキルを使用しないでください。
- より具体的な iii スキルが適している場合、このスキルを適用してはいけません。
- このスキルの例を適用する前に、環境と安全性の制約を必ず確認してください。
コメント
Markdown 対応