Mandala
Blocks

レスポンス

レスポンスブロックはワークフローの最終ステップであり、APIコールに対して構造化されたレスポンスをフォーマットして送信します。これはワークフロー全体の「return」ステートメントのようなもので、結果をパッケージ化して返送します。

レスポンスブロックの設定

レスポンスブロックは終端ブロックです - ワークフローの実行を終了し、他のブロックに接続することはできません。

概要

レスポンスブロックでは以下のことが可能です:

APIレスポンスのフォーマット:ワークフロー結果を適切なHTTPレスポンスに構造化する

ステータスコードの設定:ワークフロー結果に基づいて適切なHTTPステータスコードを設定する

ヘッダーの制御:APIレスポンスとウェブフックにカスタムヘッダーを追加する

データの変換:ワークフロー変数をクライアントフレンドリーなレスポンス形式に変換する

動作の仕組み

レスポンスブロックはワークフローの実行を完了させます:

  1. データの収集 - 前のブロックからの変数と出力を収集する
  2. レスポンスのフォーマット - 設定に従ってデータを構造化する
  3. HTTP詳細の設定 - ステータスコードとヘッダーを適用する
  4. レスポンスの送信 - フォーマットされたレスポンスをAPI呼び出し元に返す

レスポンスブロックが必要な場合

  • APIエンドポイント:ワークフローがAPI経由で呼び出される場合、レスポンスブロックは返すデータをフォーマットします
  • ウェブフック:確認またはデータを呼び出しシステムに返します
  • テスト:ワークフローをテストする際にフォーマットされた結果を確認できます

レスポンスを構築する2つの方法

ビルダーモード(推奨)

レスポンス構造を構築するためのビジュアルインターフェース:

  • フィールドのドラッグ&ドロップ
  • ワークフロー変数の簡単な参照
  • レスポンス構造のビジュアルプレビュー

エディターモード(上級者向け)

JSONを直接記述:

  • レスポンス形式の完全な制御
  • 複雑なネスト構造のサポート
  • 動的な値には <variable.name> 構文を使用

設定オプション

レスポンスデータ

レスポンスデータは、APIの呼び出し元に送り返される主要なコンテンツです。JSONとして形式化され、以下を含めることができます:

  • 静的な値
  • <variable.name> 構文を使用したワークフロー変数への動的な参照
  • ネストされたオブジェクトと配列
  • 任意の有効なJSON構造

ステータスコード

レスポンスのHTTPステータスコードを設定します。一般的なステータスコードには以下があります:

  • 200: OK - 標準的な成功レスポンス
  • 201: Created - リソースが正常に作成された
  • 204: No Content - レスポンス本文のない成功
  • 400: Bad Request - 無効なリクエストパラメータ
  • 401: Unauthorized - 認証が必要
  • 404: Not Found - リソースが存在しない
  • 422: Unprocessable Entity - バリデーションエラー
  • 500: Internal Server Error - サーバー側のエラー
  • 502: Bad Gateway - 外部サービスのエラー
  • 503: Service Unavailable - サービスが一時的に利用不可

指定されない場合、デフォルトのステータスコードは200です。

レスポンスヘッダー

レスポンスに含める追加のHTTPヘッダーを設定します。

ヘッダーはキーと値のペアとして設定されます:

キー
Content-Typeapplication/json
Cache-Controlno-cache
X-API-Version1.0

使用例

APIエンドポイントのレスポンス

シナリオ:検索APIから構造化データを返す

  1. ワークフローが検索クエリを処理し結果を取得
  2. ファンクションブロックが結果をフォーマットしページネーション
  3. レスポンスブロックがデータ、ページネーション、メタデータを含むJSONを返す
  4. クライアントが200ステータスで構造化レスポンスを受信

Webhook確認

シナリオ:Webhookの受信と処理を確認

  1. Webhookトリガーが外部システムからデータを受信
  2. ワークフローが受信データを処理
  3. レスポンスブロックが処理状況を含む確認を返す
  4. 外部システムが確認を受信

エラーレスポンスの処理

シナリオ:適切なエラーレスポンスを返す

  1. 条件ブロックがバリデーション失敗またはシステムエラーを検出
  2. ルーターがエラー処理パスに誘導
  3. レスポンスブロックがエラー詳細とともに400/500ステータスを返す
  4. クライアントが構造化されたエラー情報を受信

入力と出力

  • レスポンスデータ:レスポンス本文のJSON構造

  • ステータスコード:HTTPステータスコード(デフォルト:200)

  • ヘッダー:キーと値のペアとしてのカスタムHTTPヘッダー

  • モード:レスポンス構築のためのビルダーまたはエディターモード

  • response.data:構造化されたレスポンス本文

  • response.status:送信されたHTTPステータスコード

  • response.headers:レスポンスに含まれるヘッダー

  • response.success:正常完了を示すブール値

  • HTTPレスポンス:API呼び出し元に送信される完全なレスポンス

  • ワークフロー終了:ワークフロー実行を終了

  • アクセス:レスポンスブロックは終端 - 後続ブロックなし

変数の参照

<variable.name> 構文を使用して、ワークフロー変数を応答に動的に挿入します:

{
  "user": {
    "id": "<variable.userId>",
    "name": "<variable.userName>",
    "email": "<variable.userEmail>"
  },
  "query": "<variable.searchQuery>",
  "results": "<variable.searchResults>",
  "totalFound": "<variable.resultCount>",
  "processingTime": "<variable.executionTime>ms"
}

変数名は大文字と小文字が区別され、ワークフローで利用可能な変数と完全に一致する必要があります。

ベストプラクティス

  • 意味のあるステータスコードを使用する: ワークフローの結果を正確に反映する適切なHTTPステータスコードを選択してください
  • 一貫した応答構造を維持する: より良い開発者体験のために、すべてのAPIエンドポイントで一貫したJSON構造を維持してください
  • 関連するメタデータを含める: デバッグとモニタリングに役立つタイムスタンプとバージョン情報を追加してください
  • エラーを適切に処理する: ワークフローで条件付きロジックを使用して、説明的なメッセージを含む適切なエラー応答を設定してください
  • 変数参照を検証する: 応答ブロックが実行される前に、参照されるすべての変数が存在し、予想されるデータ型を含んでいることを確認してください
レスポンス