Bearer認証でREST APIジョブのエンドポイントを呼び出してみよう
このシナリオでは、HULFT SquareでREST APIジョブの作成までを行い、お客様環境のプログラムからジョブを実行するエンドポイントを呼び出すことを想定しています。
エンドポイントの呼び出しのための認証には、Bearer認証を使用します。
認証のためのアクセストークンは、以下の方法で更新できます。
-
HULFT Squareの個人設定 > アクセストークンから更新
-
お客様環境のプログラムでAPIから更新
このシナリオでは、認証のためのアクセストークンを更新するため、HULFT SquareのWeb画面からではなく、お客様環境のプログラムでAPIから直接アクセストークンを更新する方法で説明します。
説明
HULFT Squareでスクリプトを実行するREST APIジョブを作成してから、お客様環境でBearer認証のための準備を行い、ジョブ実行のエンドポイントを呼び出すまでの手順を説明します。
以下の手順で作業を行います。
2. REST APIジョブのエンドポイントをお客様のHTTPクライアントから実行する
操作手順
HULFT Squareで、スクリプトを実行するREST APIジョブを作成します。
(1) REST APIジョブのエンドポイントで実行するスクリプトを作成する
このシナリオでは、「CSVを加工するスクリプトを作ってみよう」で作成したスクリプトを使用します。
(2) APIプロジェクトを作成する
-
> APIマネジメント > APIプロジェクトを選択します。
-
APIプロジェクトページで、追加を選択します。
-
APIプロジェクト > 新規追加ページの手順全般で以下のとおり設定し、次へを選択します。
項目名
設定(例)
名前
REST_API_job_PJ
ワークスペース
Personal
説明
(任意)
基本パス
api-test
-
手順サマリーで、入力した内容を確認し完了を選択します。
(3) APIプロジェクトにリソースを追加する
-
APIプロジェクトページで、リソースアイコンを選択します。
-
APIプロジェクト > REST_API_job_PJ > リソースページで、
のHTTPメソッドを追加からGETを選択します。
-
APIプロジェクト > REST_API_job_PJ > リソースページの右レイヤーで、以下のとおり設定し、Applyを選択します
項目名
設定(例)
プロジェクト
sample1
バージョン
最新のバージョン番号を設定する。
スクリプト
Script
レスポンス設定
レスポンスコード
200
レスポンス本文
テキストJSONdata
その他の項目の設定は任意です。
(4) APIクライアントの作成
-
> APIマネジメント > APIクライアントを選択します。
-
APIクライアントページで、APIクライアントを作成を選択します。
-
APIクライアント > 新規追加ページの手順全般で以下のとおり設定し、次へを選択します。
項目名
設定(例)
名前
API_Client
説明
(任意)
メンバー
メンバーのリストからエンドポイントを呼び出すユーザーを選択します(複数可)。
IP許可リスト
(任意)
-
手順サマリーで、入力した内容を確認し完了を選択します。
(5) REST APIジョブの作成
-
> ジョブ > REST APIジョブを選択します。
-
REST APIジョブページで、追加を選択します。
-
REST APIジョブ > 新規追加ページの手順全般で以下のとおり設定し、次へを選択します。
項目名
設定(例)
ワークスペース
Personal
APIプロジェクト
REST_API_job_PJ
APIプロジェクトバージョン
最新のバージョン番号を設定する。
プロファイル
プロファイルを選択する。
説明
(任意)
-
手順API設定で、以下のとおり設定し、次へ選択します。
項目名
設定(例)
APIクライアント
API_Client
-
手順スクリプト実行のためのサービスで、以下のとおり設定し、次へ選択します。
項目名
設定(例)
スクリプト実行のためのサービス
実行中のHULFT Integrateサービス名を設定する。
-
手順サマリーで、入力した内容を確認し完了を選択します。
エンドポイントが自動で作成されます。
-
REST APIジョブページで、情報アイコンを選択します。
-
REST APIジョブ > REST_API_job_PJページでエンドポイントのURLをコピーし、メモ帳などのテキストエディターに控えておきます。
コピーしたエンドポイントのURLは手順2. 2 で使用します。
認証のためのトークンの更新をHULFT Squareの Web画面からではなくお客様環境のプログラムでAPIから直接行うためには、その認証に必要なアクセストークンを事前に取得する必要があります。
以下のとおり、Login APIでアクセストークンを取得します。
指定方法
POST /v1/users/login
エンドポイントは以下となります。
https://app.square.hulft.com/v1/users/login
BodyにはJSON形式で電子メールアドレスとパスワードを指定します。
リクエストボディ
{ "email":"abc@example.com", "password":"*******" }
エンドポイントに上記リクエストボディを送信すると、以下のとおりレスポンスボディにアクセストークン(以降、Login APIで取得したアクセストークン)が取得されます。
レスポンスボディ
{ "accessToken":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "expiresIn": 3600, "tokenType": "Bearer", "challenge": false, "email": "", "session": "" }
以降、APIにアクセスする場合は、Login APIで取得したアクセストークンをAuthorization Headerに指定して、アクセスの許可を得る必要があります。
2. REST APIジョブのエンドポイントをお客様のHTTPクライアントから実行する
2. 2 REST APIジョブのエンドポイントをお客様のHTTPクライアントから実行する
アクセストークンには有効期限があります。有効期限が切れている場合は、REST APIジョブのエンドポイントにリクエストを送信する前にアクセストークンを更新します。
アクセストークンの有効期限はデフォルトで60分です。Admin権限で最大1日にすることができます。
HULFT Squareの個人設定 > アクセストークンから取得したリフレッシュトークンを使用して、アクセストークンを更新します。
HULFT Squareの個人設定 > アクセストークンからリフレッシュトークンを取得する方法については、「個人設定」を参照してください。
指定方法
PUT /v1/rest-api-token
エンドポイントは以下となります。
https://app.square.hulft.com/v1/rest-api-token
Authorization: Bearer <Login APIで取得したアクセストークン>
BodyにはJSON形式でリフレッシュトークンを指定します。
リクエストボディ
{ "refreshToken":"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" (*) }
* |
: |
refreshTokenには、HULFT Squareの個人設定 > アクセストークンから取得したリフレッシュトークンを指定します。 |
エンドポイントに上記リクエストボディを送信すると、以下のとおりアクセストークンが更新されます。
レスポンスボディ
{ "expires": 1669798184, "accessToken":"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ", "refreshToken":"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", expiresIn: 3600, tokenType: "Bearer", status: "Valid", updated: 1669794 }
2. 2 REST APIジョブのエンドポイントをお客様のHTTPクライアントから実行する
HULFT Squareの > ジョブ > REST APIジョブで作成したHTTPメソッドおよびURLをお客様環境のHTTPクライアントから呼び出します。
指定方法
エンドポイントは以下となります。
https://<お客様のドメイン名>.square.hulft.com/<プロファイル名>/<基本パス>/<リソースパス>
Authorization: Bearer <accessToken> (*)
* |
: |
<accessToken>には、手順2. 1 で取得したアクセストークンを指定します。 |
この結果、REST APIジョブに設定されたスクリプトが実行されます。
正常にリクエストが実行された場合は、HTTPコードに"200 (OK)"の値が返されます。
400、401エラーなど 400番台のエラーが発生した場合には、エンドポイント、アクセストークン、およびリクエストボディなどのリクエスト情報に正しい値が設定されていることを確認してください。また、403の場合には、APIクライアントの設定をご確認ください。
スクリプトの実行結果は、 > サービス > HULFT Integrateのページで確認します。
HULFT Integrateページでは、以下のとおり、フィルタを追加でフィルターをかけて確認できます。
-
レスポンスボディにexecution_idが出力された場合
実行IDにexecution_idを指定して確認してください。
-
レスポンスボディにexecution_idが出力されなかった場合
プロジェクト名またはスクリプト名を指定して、開始日時などの時間を目安に実行結果を特定し確認してください。
REST APIジョブのエラーレスポンスについては、「REST APIジョブのエラーレスポンスについて」を参照してください。