---
title: レスポンス
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'

レスポンスブロックは、構造化されたHTTPレスポンスをフォーマットしてAPIコーラーに送り返します。適切なステータスコードとヘッダーを含むワークフローの結果を返すために使用します。

<div className="flex justify-center">
  <Image
    src="/static/blocks/response.png"
    alt="レスポンスブロックの設定"
    width={500}
    height={400}
    className="my-6"
  />
</div>

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

## 設定オプション

### レスポンスデータ

レスポンスデータは、APIコーラーに送り返される主要なコンテンツです。これはJSON形式でフォーマットされ、以下を含むことができます：

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

### ステータスコード

レスポンスのHTTPステータスコードを設定します（デフォルトは200）：

**成功 (2xx):**
- **200**: OK - 標準的な成功レスポンス
- **201**: Created - リソースが正常に作成された
- **204**: No Content - レスポンス本文のない成功

**クライアントエラー (4xx):**
- **400**: Bad Request - 無効なリクエストパラメータ
- **401**: Unauthorized - 認証が必要
- **404**: Not Found - リソースが存在しない
- **422**: Unprocessable Entity - バリデーションエラー

**サーバーエラー (5xx):**
- **500**: Internal Server Error - サーバー側のエラー
- **502**: Bad Gateway - 外部サービスのエラー
- **503**: Service Unavailable - サービスが一時的に利用不可

### レスポンスヘッダー

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

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

| キー | 値 |
|-----|-------|
| Content-Type | application/json |
| Cache-Control | no-cache |
| X-API-Version | 1.0 |

## 使用例

**APIエンドポイントレスポンス** - 検索APIから構造化データを返す

```
Agent (Search) → Function (Format & Paginate) → Response (200, JSON)
```

**Webhookの確認** - Webhookの受信と処理を確認する

```
Webhook Trigger → Function (Process) → Response (200, Confirmation)
```

**エラーレスポンス処理** - 適切なエラーレスポンスを返す

```
Condition (Error Detected) → Router → Response (400/500, Error Details)
```

## 出力

レスポンスブロックは終端的なものです - ワークフローの実行を終了し、HTTPレスポンスをAPI呼び出し元に送信します。下流のブロックに利用可能な出力はありません。

## 変数の参照

`<variable.name>` 構文を使用して、レスポンスにワークフロー変数を動的に挿入します：

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

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

## ベストプラクティス

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