httpリクエストブロック − RestAPI対応について
このページでは、dejiren で RestAPI に対応する 「httpリクエスト」ブロックの設定方法と利活用のケースについて説明します。
「httpリクエスト」ブロックは
「高度な手順ブロック一覧」> 「http」にあります。

もくじ
- HTTPリクエストブロックについて
- REST APIとは
- HTTPメソッドについて
- 接続設定
- HTTPリクエストブロックの設定項目
- リクエストヘッダー設定
- レスポンス設定
- レスポンスヘッダー設定
- 利用例
- トラブルシューティング
HTTPリクエストブロックについて
HTTPリクエストブロックは、外部のREST APIやWebサービスにHTTPリクエストを送信するためのブロックです。これにより、dejirenに専用コネクタが用意されていないサービスとも情報のやり取りが可能になります。
REST APIとは
REST API(Representational State Transfer API)は、Webサービス間でデータをやり取りするための標準的な設計原則です。HTTPプロトコルを使用し、リソースに対してGET、POST、PUT、DELETEなどの操作を行います。
REST APIの特徴:
- ステートレス:各リクエストは独立しており、サーバーは前の状態を保持しません
- リソース指向:URLでリソースを特定し、HTTPメソッドで操作を指定
- JSON形式:データ交換には主にJSON形式を使用
- HTTP標準:HTTPプロトコルの標準的な機能を活用
- キャッシュ可能:レスポンスをキャッシュして性能を向上
HTTPリクエストブロックの特徴:
- 外部API連携:様々な外部サービスのAPIと連携し、データの取得や送信が可能
- 柔軟性:GET、POST、PUT、DELETEなど様々なHTTPメソッドに対応
- カスタマイズ:ヘッダーやパラメーターを自由に設定可能
- レスポンス処理:APIからの応答データを後続のブロックで利用可能
- 認証対応:APIキーやトークンを使った認証に対応
注意: HTTPリクエストブロックは外部サーバーに対してリクエストを送信するため、相手サーバーの状況や仕様変更により動作に影響が出る場合があります。予めご了承ください。
REST APIの詳細
REST APIの設計原則
原則 | 説明 | HTTPリクエストブロックでの活用 |
---|---|---|
統一インターフェース | 同じHTTPメソッドは同じ動作をする | メソッド選択により予測可能な動作を実現 |
ステートレス | 各リクエストは独立している | 認証情報をヘッダーに含めて送信 |
キャッシュ可能 | レスポンスをキャッシュできる | 適切なHTTPヘッダーでキャッシュ制御 |
階層システム | クライアントはエンドポイントのみ意識 | ベースURL設定でシンプルな接続 |
HTTPステータスコードの理解
REST APIとの通信では、HTTPステータスコードが重要な役割を果たします。レスポンスヘッダー設定でステータスコードを取得し、後続の処理を分岐させることができます。
ステータスコード | 意味 | 対応方法 |
---|---|---|
200 OK | リクエスト成功 | レスポンスデータを正常に処理 |
201 Created | リソース作成成功 | 作成されたリソースの情報を取得 |
400 Bad Request | リクエストに問題あり | パラメーターやヘッダーの設定を確認 |
401 Unauthorized | 認証が必要 | APIキーやトークンの設定を確認 |
403 Forbidden | アクセス権限なし | ユーザー権限やスコープを確認 |
404 Not Found | リソースが存在しない | URLやリソースIDを確認 |
429 Too Many Requests | レート制限 | リクエスト間隔を調整 |
500 Internal Server Error | サーバー内部エラー | API提供者に問題を報告 |
HTTPメソッドについて
REST APIでは、HTTPメソッドがリソースに対する操作を表します。HTTPリクエストブロックでは、用途に応じて適切なHTTPメソッドを選択できます。
HTTPメソッド | CRUD操作 | 用途 | 説明 |
---|---|---|---|
GET | Read(読み取り) | データ取得 | APIからデータを取得する際に使用。URLパラメーターでクエリを指定します。冪等性があり、何度実行しても同じ結果になります。 |
POST | Create(作成) | データ送信・作成 | 新しいデータを送信・作成する際に使用。リクエストボディにデータを含めます。冪等性がなく、実行のたびに新しいリソースが作成される可能性があります。 |
PUT | Update(更新) | データ更新 | 既存のデータを更新する際に使用。リソース全体を置き換えます。冪等性があり、何度実行しても同じ状態になります。 |
DELETE | Delete(削除) | データ削除 | 指定したリソースを削除する際に使用。冪等性があり、存在しないリソースの削除要求も同じ結果になります。 |
冪等性について:
冪等性(べきとうせい、idempotence)とは、同じ操作を何度実行しても結果が変わらない性質のことです。GET、PUT、DELETEは冪等性がありますが、POSTには冪等性がありません。
接続設定
HTTPリクエストブロックを使用する前に、まず接続設定を行う必要があります。
Basic認証接続設定 / 認証なし接続設定

設定項目 | 設定値 | 入力 | 備考 |
---|---|---|---|
接続名 | 任意の識別名称を入力 | 必須 | − |
ベースURL | 接続先APIのベースURLを設定 | 必須 | HTTPリクエストを呼び出す対象のURLのベースURLを指定します。「HTTPリクエスト」ブロックの「URL」項目に相対パスを指定した場合は、ベースURL+相対パスがHTTPリクエストの呼び出しに利用されます。 |
ユーザー名 | 接続先のBasic認証用のユーザー名を入力 | 必須(Basic認証の場合のみ) | ※認証なし接続設定の場合には項目なし |
パスワード | 接続先のBasic認証用のパスワードを入力 | 必須(Basic認証の場合のみ) | ※認証なし接続設定の場合には項目なし |
接続確認URL | 接続テスト用のエンドポイントURLを設定 | 任意 | 接続確認で利用するGETメソッドで呼び出せるURLを指定します。 相対パスを指定した場合は、ベースURL+相対パスが利用されます。指定がない場合は接続確認は失敗します。 |
ブリッジ | 通常設定しない | 不要 | オンプレミスサーバと接続する場合には、対象サーバに接続するためのブリッジを選択します。 |
個人認証 | 個人認証が必要なときはチェック | 任意 | 必要に応じてチェックを付けます。 |
HTTPリクエストブロックの設定項目

基本設定
設定項目 | 設定値 | 入力 | 備考 |
---|---|---|---|
接続設定 | 上記のBasic認証接続設定を選択 | 必須 | 事前に作成した接続設定を選択します |
URL | フルパスまたは相対パス | 任意 | HTTPリクエストを呼び出す対象のURLのフルパスもしくは、接続設定に設定してある「ベースURL」に対する相対パスを指定します。 |
メソッド | GET/POST/PUT/DELETE のいずれかを選択 | 必須 | HTTPリクエストで利用するHTTPメソッドを選択します。 |
タイムアウト | 30秒(標準設定値) | 必須 | HTTPリクエスト実行時のタイムアウトの設定です。最大600秒まで設定可能です。 |
クエリー設定
URLに付加するクエリストリングの設定をします。設定した内容は、URLの後ろに key1=value1&key2=value2 の形式の文字列で付加されます。
設定項目 | 設定値 | 入力 |
---|---|---|
キー | 必要に応じてURLパラメータをkey-value形式で設定 | 任意 |
値 | 上記キーに対応する値 | 任意 |
リクエスト設定
メソッドをPOST、PUT、DELETEのいずれかを選択したときに、HTTPボディに設定するメッセージのタイプを指定します。呼び出し先のREST APIの仕様に合わせて選択してください。
設定値 | 説明 |
---|---|
なし | HTTPボディはありません。 |
JSON | Content-Typeを”application/json”に設定して、変数を含むテキストを設定して、HTTPボディで送信します。 |
フォーム(multipart/form-data) | Content-Typeを”multipart/form-data”に設定して、RFC 7578に準拠したフォームデータをHTTPボディで送信します。ファイルを項目として送信することができます。 |
フォーム(x-www-form-urlencoded) | Content-Typeを”application/x-www-form-urlencoded”に設定して、クエリストリングをHTTPボディで送信します。ファイルを項目として送信することはできません。 |
JSONリクエストの例:
リクエストヘッダを指定しない場合には以下のようなJSONを入力してください:
{
"Content-Type": "application/json",
"X-API-Key": "接続APIキー"
}
リクエストヘッダー設定
HTTPリクエストを呼び出す際に付加するHTTPヘッダ項目を設定します。呼び出し先のREST APIの仕様に合わせて設定してください。
設定項目 | 設定値 | 入力 |
---|---|---|
キー | HTTPリクエストを呼び出す際に付加するHTTPヘッダ項目のキーを設定します。呼び出し先のREST APIの仕様に合わせて設定してください。 | 必須 |
値 | HTTPリクエストを呼び出す際に付加するHTTPヘッダ項目の値を設定します。呼び出し先のREST APIの仕様に合わせて設定してください。 | 必須 |
よく使用されるヘッダー | 用途 | 設定例 |
---|---|---|
Content-Type | 送信データの形式指定 | application/json application/x-www-form-urlencoded |
Authorization | API認証 | Bearer YOUR_TOKEN Basic BASE64_CREDENTIALS |
X-API-Key | APIキー認証 | “接続用のAPIキー” |
Accept | 受信データの形式指定 | application/json text/html |
User-Agent | クライアント情報 | dejiren-va/1.0 |
注意: APIキーやトークンなどの機密情報は、セキュリティを考慮して適切に管理してください。
レスポンス設定
HTTPリクエストを呼び出した結果の応答の内容を設定します。呼び出すWebリソースまたは、呼び出し先のREST APIの仕様に合わせて設定してください。
設定値 | 説明 |
---|---|
なし | 応答はありません。 |
あり(JSON) | 応答のContent-Typeは”application/json”を期待しています。応答するJSONに対して、キー、表示名、およびデータ型を指定して、後続のブロックで値を使用することができます。また、パラメーターキーにはルート項目の名前もしくはJSONPath(https://goessner.net/articles/JsonPath/)を指定することができます。 |
あり(テキスト) | 応答のContent-Typeは”text/plain”を期待しています。 |
バイナリ(ファイル) | 応答の内容はファイルとして取り扱います。 |
レスポンスヘッダー設定
HTTPリクエストを呼び出した結果の応答のHTTPヘッダー項目のキー、表示名、およびデータ型を指定して、後続のブロックで値を使用することができます。
設定項目 | 設定値 | 入力 |
---|---|---|
パラメーターキー | 必要に応じてレスポンスヘッダーから取得したい項目を設定 | 任意 |
出力値の表示名 | VA内で参照する際の変数名 | 任意 |
データタイプ | 文字列型など、データの型を指定 | 任意 |
説明 | パラメーターの用途説明 | 任意 |
取得できるレスポンス情報の例:
- ステータスコード(200、404、500など)
- コンテンツタイプ
- レスポンスボディ(JSON、XML、テキストなど)
- カスタムヘッダー
利用例
例1:REST API – 天気情報取得
OpenWeatherMap REST API連携:
- URL: https://api.openweathermap.org/data/2.5/weather
- メソッド: GET(データ取得)
- クエリパラメーター:
- q: 大阪(都市名)
- appid: YOUR_API_KEY(認証キー)
- lang: ja(言語設定)
- units: metric(単位系)
- レスポンス: JSON形式の天気情報
例2:REST API – Slack通知送信
Slack Webhook REST API連携:
- URL: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
- メソッド: POST(データ送信)
- ヘッダー: Content-Type: application/json
- リクエストボディ(JSON):
- {“text”: “メッセージ内容”}
- {“channel”: “#general”, “username”: “dejiren-bot”}
- レスポンス: ok または エラーメッセージ
例3:REST API – ユーザー情報更新
RESTful API – ユーザーリソース更新:
- URL: https://api.example.com/users/123(リソースID指定)
- メソッド: PUT(データ更新)
- ヘッダー:
- Content-Type: application/json
- Authorization: Bearer YOUR_TOKEN(OAuth認証)
- リクエストボディ: {“name”: “更新後の名前”, “email”: “new@example.com”}
- レスポンス: 更新されたユーザー情報(JSON)
例4:REST API – データ削除
RESTful API – リソース削除:
- URL: https://api.example.com/posts/456(投稿ID指定)
- メソッド: DELETE(データ削除)
- ヘッダー: Authorization: Bearer YOUR_TOKEN
- リクエストボディ: 不要(DELETEメソッドの場合)
- レスポンス: 204 No Content(削除成功)
トラブルシューティング
よくある問題と対処法
問題 | 原因 | 対処法 |
---|---|---|
タイムアウトエラー | 相手サーバーの応答が遅い | タイムアウト時間を延長、またはAPIの仕様を確認 |
401 Unauthorized | 認証情報が不正 | APIキーやトークンの設定を見直し |
404 Not Found | URLが間違っている | エンドポイントURLを確認 |
500 Internal Server Error | 相手サーバーの内部エラー | リクエスト内容の確認、サーバー状況の確認 |
デバッグのヒント:
- まずは簡単なGETリクエストから試してみる
- APIの公式ドキュメントで仕様を確認
- curlコマンドやPostmanなどのツールで動作確認
- レスポンスヘッダーの設定でステータスコードを取得
補足説明
- JSONレスポンスのパラメーターキーは、A.B.C のようにピリオドでつなげて取得できます
- 配列形式の場合は [0].A のように配列の順番を記載します
- 受信したパラメーターは、テキスト切り出しブロックやテキスト分割ブロックで加工できます
- 外部APIの利用には、各サービスの利用規約をご確認ください
#httpリクエスト #HTTP #API #外部連携 #REST #RESTAPI #JSON #webhook #汎用 #CRUD