httpリクエストブロック − RestAPI対応について

このページでは、dejiren で RestAPI に対応する 「httpリクエスト」ブロックの設定方法と利活用のケースについて説明します。

「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操作用途説明
GETRead(読み取り)データ取得APIからデータを取得する際に使用。URLパラメーターでクエリを指定します。冪等性があり、何度実行しても同じ結果になります。
POSTCreate(作成)データ送信・作成新しいデータを送信・作成する際に使用。リクエストボディにデータを含めます。冪等性がなく、実行のたびに新しいリソースが作成される可能性があります。
PUTUpdate(更新)データ更新既存のデータを更新する際に使用。リソース全体を置き換えます。冪等性があり、何度実行しても同じ状態になります。
DELETEDelete(削除)データ削除指定したリソースを削除する際に使用。冪等性があり、存在しないリソースの削除要求も同じ結果になります。

冪等性について:
冪等性(べきとうせい、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ボディはありません。
JSONContent-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
AuthorizationAPI認証Bearer YOUR_TOKEN
Basic BASE64_CREDENTIALS
X-API-KeyAPIキー認証“接続用の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 FoundURLが間違っているエンドポイントURLを確認
500 Internal Server Error相手サーバーの内部エラーリクエスト内容の確認、サーバー状況の確認

デバッグのヒント:

  • まずは簡単なGETリクエストから試してみる
  • APIの公式ドキュメントで仕様を確認
  • curlコマンドやPostmanなどのツールで動作確認
  • レスポンスヘッダーの設定でステータスコードを取得

補足説明

  • JSONレスポンスのパラメーターキーは、A.B.C のようにピリオドでつなげて取得できます
  • 配列形式の場合は [0].A のように配列の順番を記載します
  • 受信したパラメーターは、テキスト切り出しブロックやテキスト分割ブロックで加工できます
  • 外部APIの利用には、各サービスの利用規約をご確認ください

#httpリクエスト #HTTP #API #外部連携 #REST #RESTAPI #JSON #webhook #汎用 #CRUD