ブロックリファレンス

BLOCKS Reference

API

HTTP POST(JSON)

概要

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

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

  • リクエストには、任意のクエリーパラメーターopen_in_newリクエストヘッダーopen_in_newを含められます。
  • レスポンスは、変数に格納されます。
  • 本ブロックを使うことで、JSONデータをリクエストボディに含むHTTP POSTメソッドの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 POST(JSON)」ブロックの使い方を紹介します。

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

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

  • URL:https://jsonplaceholder.typicode.com/posts
  • 投稿データ:新しい投稿データを含むJSON形式のオブジェクト
    名前 説明 値の例
    userId 投稿のユーザーID 1
    title 投稿のタイトル "example title"
    body 投稿の本文 "example body"

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

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

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

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

[
  {
    "userId": 1,
    "title": "example title",
    "body": "example body"
  }
]

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

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

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

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

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

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

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

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

{
  "userId": "1",
  "title": "example title",
  "body": "example body",
  "id": 101
}
名前 説明
userId 投稿のユーザーID
title 投稿のタイトル
body 投稿の本文
id 投稿のID

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

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

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

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

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

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

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