ブロックリファレンス

BLOCKS Reference

API

HTTP PUT(JSON)

概要

このブロックは、指定されたURL(HTTPサーバー)へ、HTTPopen_in_newのPUTメソッドを使って指定されたJSONデータを含む要求(リクエスト)を送り、応答(レスポンス)としてリソース(データ)を取得します。

JSONデータは、変数に格納されたデータをエンコードしてリクエストボディに含めます。リクエストヘッダーには、Content-Type: application/jsonを含めます。

  • リクエストには、任意のクエリーパラメーターopen_in_newリクエストヘッダーopen_in_newを含められます。
  • レスポンスは、変数に格納されます。
  • 本ブロックを使うことで、JSONデータをリクエストボディに含むHTTP PUTメソッドのWeb APIと連携可能です。
  • レスポンスの"HTTP Status"が400番台・500番台のときは、ブロックの実行が失敗します。

プロパティ

プロパティ名 説明
ブロック名 ブロックの名前を指定します。ブロックに表示されます。
URL リクエストするURLを指定します。
クエリーパラメーター

クエリーパラメーターを指定します。キーとバリューの組み合わせで指定します。

バリューのみ:
変数展開の指定が可能][%形式の文字列書式の指定が可能]
リクエストボディを指定する変数

変数を指定します。この変数に格納されたデータは、JSONエンコードされ、リクエストボディに含められます。

ブロックメモ ブロックに対するコメントを指定します。
エラー時の繰り返し回数 リクエストエラー時の繰り返し回数を指定します。
繰り返し間隔 リクエストエラー時の繰り返し間隔を秒単位で指定します。
レスポンスを格納する変数

HTTPサーバーが返すレスポンスを格納する変数を指定します。

変数に格納する値は、レスポンスのメッセージ・ボティのみです。レスポンスの「Content-Type」ヘッダーが「application/json」の場合は、メッセージ・ボディをデコードした結果を変数に格納します。

詳細については、「出力仕様>HTTP GET/HTTP POST/HTTP PUT」を参照してください。

リクエストヘッダー

リクエストヘッダーopen_in_newを指定します。キーとバリューの組み合わせで指定します。

「Bearerトークン認証」や「Basci認証」などのように、Web APIによっては追加のリクエストヘッダーが必要な場合があります。このプロパティは、そのような場合に使用します。

以下は、「Bearerトークン認証」を指定した例です。

バリューのみ:
変数展開の指定が可能][%形式の文字列書式の指定が可能]

使用例

ここでは、JSONPlaceholderopen_in_newを使用して、「HTTP PUT(JSON)」ブロックの使い方を紹介します。

JSONPlaceholderは、ウェブ開発者がデータをモックアップするためのWebサービスで、JSON形式でデータを返します。RESTfulなAPIとして機能し、HTTPリクエスト(POST、GET、PUT、DELETEなど)を受け付けます。

JSONPlaceholderを使用したHTTP PUTの例について簡単に説明します。以下は、ブログなどの投稿記事を更新するAPIの仕様です。

  • URL:https://jsonplaceholder.typicode.com/posts/{id}
    {id}は更新する投稿記事のID
  • 更新データ:更新データを含むJSON形式のオブジェクト
    名前 説明 値の例
    title 更新する投稿のタイトル "Updated Title"
    body 更新する投稿の本文 "Updated body content"

更新データは、JSON形式のオブジェクトで作成する必要がありますが、ここでは「スプレッドシートのデータを取得」ブロックを使って実現する方法を紹介します。

更新データ用に、以下のGoogleスプレッドシートを準備します。

infoこのGoogleスプレッドシートは、GCPサービスアカウントのメールアドレスと共有しておく必要があります。GCPサービスアカウントのメールアドレスは、フローデザイナーの「設定」の「GCPサービスアカウント」で確認できます。

このGoogleスプレッドシートを「スプレッドシートのデータを取得」ブロックで処理すると、変数に以下のようなオブジェクトの配列形式のデータが格納されます。

[
  {
    "title": "Updated Title",
    "body": "Updated body content"
  }
]

後は、この配列の先頭(0番目)のオブジェクトを利用すれば良いわけです。

このケースの「スプレッドシートのデータを取得」ブロックの指定は、以下のようになります。

設定するプロパティと値は以下のとおりです。

プロパティ 指定値
ファイル名 作成したGoogleスプレッドシートのファイル名もしくはURL
結果を格納する変数 request_body

このデータを使って、JSONPlaceholderを使用したHTTP PUTを「HTTP PUT(JSON)」ブロックで実現すると以下のようになります。

設定するプロパティと指定値は以下のとおりです。

プロパティ 指定値
URL https://jsonplaceholder.typicode.com/posts/1
リクエストボディを指定する変数 request_body.0
レスポンスを格納する変数 response

このブロックを実行すると、以下のようなレスポンスが返ってきます。

{
  "title": "Updated Title",
  "body": "Updated body content",
  "id": 1
}
名前 説明
title 更新された投稿のタイトル
body 更新された投稿の本文
id 更新された投稿のID

このレスポンスは、「HTTP PUT(JSON)」ブロックの「レスポンスを格納する変数」プロパティの指定で、responseという名前の変数に格納されます。

この使用例では、変数に格納されたレスポンスを更新の履歴としてBigQueryテーブルに格納することにします。

変数に格納されたデータをBigQueryテーブルに格納するには、BigQueryカテゴリーの「変数からテーブルへロード」ブロックを使用します。使用例は、以下のとおりです。

設定するプロパティと指定値は以下のとおりです。

プロパティ 指定値
投入データの変数 response
投入先のデータセット レスポンスデータ格納用のBigQueryデータセット
投入先のテーブル レスポンスデータ格納用のBigQueryテーブル
スキーマ設定 上図のように指定

これら3つのブロックを組み合わせてフローの完成です。

この情報は役に立ちましたか?