intra-mart Accel Platform IM-LogicDesigner チュートリアルガイド 第7版 2018-04-01

5.4.5.2. ユーザ定義(REST)の詳細

この章では、RESTを利用したユーザ定義の作成方法を、仮想サービス(REST API)をもとに説明します。

5.4.5.2.1. 本チュートリアルで作成する概要

本チュートリアルでは、仮想のサービス提供者と提供REST APIを定義します。
その仮想サービスへアクセスを行うタスクの処理の実装を通して、RESTを利用したユーザ定義の作成方法とその詳細を説明します。

5.4.5.2.1.1. 本チュートリアルで定義する仮想のサービス提供者とその詳細

本チュートリアルで定義する仮想のサービス提供者のイメージは以下の通りです。
../../../../_images/virtual_access_point.png

図:仮想のサービス提供者のイメージ

詳細な設定項目、および、想定する値/設定内容については以下の通りです。
設定項目 想定する値/設定内容
エンドポイント http://example.org/rest/api
メソッド POST
リクエストパラメータ
以下の二つのパラメータを受け取ることが出来るものとします。
  • max_count
    • 取得データの上限個数を指定します。
    • 型は数値型を取るものとします。
  • search_word
    • 取得データを部分一致で検索する単語を指定します。
    • 型は文字列型を取るものとします。
入力様式 x-www-form-urlencoded
出力様式 json
認証方式 OAuth2を利用した認証を利用します。

5.4.5.2.2. リクエスト情報

はじめに、今回作成するユーザ定義(REST)が対象とするサービスへのリクエスト情報の設定を行います。

5.4.5.2.2.1. 基礎情報

リクエストの基礎情報を「本チュートリアルで作成する概要」を元に定義します。
ここでは「リクエストヘッダ」「リクエストパラメータ」を除くリクエスト情報を基礎情報としています。
定義内容は以下の通りです。
  • エンドポイント
    • http://example.org/rest/api
  • メソッド
    • POST
  • リクエスト種別
    • x-www-form-urlencoded
  • リクエストエンコーディング
    • UTF-8
  • リダイレクトを利用する
    • チェックあり
  • リクエストタイムアウト(秒)
    • 30
../../../../_images/request_info_basic.png

図:リクエスト情報 - 基礎情報

以上で、基礎情報の設定が完了しました。

5.4.5.2.2.2. リクエストヘッダ

リクエストのヘッダ情報を「本チュートリアルで作成する概要」を元に定義します。
今回、OAuth2認証を利用するため、ヘッダにAuthorizationヘッダを定義します。
  1. リクエストヘッダの初期値であるUser-Agentヘッダの行の右にある削除アイコンをクリックします。

    ../../../../_images/request_info_header1.png

    図:ヘッダの削除その1

  2. User-Agentヘッダが削除されます。

    ../../../../_images/request_info_header2.png

    図:ヘッダの削除その2

  3. ヘッダ情報を扱うテーブルの左上にある追加アイコンをクリックし、新しい行を追加します。

    ../../../../_images/request_info_header3.png

    図:ヘッダの追加その1

  4. 追加された行に以下の値を入力します。

    • ヘッダ名 「Authorization
    • ヘッダ値 「Bearer iNtRaMaRt
    ../../../../_images/request_info_header4.png

    図:ヘッダの追加その2

以上で、リクエストヘッダの設定が完了しました。

5.4.5.2.2.3. リクエストパラメータ

リクエストのパラメータ情報を「本チュートリアルで作成する概要」を元に定義します。
今回想定するサービスでは、二種類のパラメータの指定を許容するため、それぞれを定義します。
  1. リクエストパラメータの初期値であるParam1パラメータ名の行の右にある削除アイコンをクリックします。

    ../../../../_images/request_info_param1.png

    図:パラメータの削除その1

  2. Param1パラメータが削除されます。

    ../../../../_images/request_info_param2.png

    図:パラメータの削除その2

  3. 同様の方法でParam2パラメータの行も削除します。

    ../../../../_images/request_info_param3.png

    図:パラメータの削除その3

  4. パラメータ情報を扱うテーブルの左上にある追加アイコンをクリックし、新しい行を追加します。

    ../../../../_images/request_info_param4.png

    図:パラメータの追加その1

  5. 追加された行に以下の値を入力します。

    • パラメータ名 「max_count
    • パラメータ値 「10
    ../../../../_images/request_info_param5.png

    図:パラメータの追加その2(max_count

  6. 同様の手順で新しく行を追加し、以下の値を入力します。

    • パラメータ名 「search_word
    • パラメータ値 「logic-designer
    ../../../../_images/request_info_param6.png

    図:パラメータの追加その3(search_word

以上で、リクエストパラメータの設定が完了しました。

5.4.5.2.3. レスポンス情報

次に、今回作成するユーザ定義(REST)が対象とするサービスが返すレスポンス情報の設定を行います。
レスポンス情報を「本チュートリアルで作成する概要」を元に定義します。
定義内容は以下の通りです。
  • レスポンス種別
    • json
  • レスポンスエンコーディング
    • UTF-8
  • ステータスコードの確認
    • チェックボックス:オン
../../../../_images/response_info.png

図:レスポンス情報

以上で、レスポンスの設定が完了しました。

5.4.5.2.4. 入力値/出力値

次に、作成するユーザ定義(REST)を呼び出す際の入力値と、呼び出しが完了した際に返却する出力値を定義します。

5.4.5.2.4.1. 入力値

ユーザ定義(REST)の入力値は、「リクエスト情報」に動的設定を行う場合に定義します。
ここでは、「リクエストパラメータ」で定義したパラメータを入力値によって動的に変更するよう変更します。
  1. 入力値として以下の項目を設定します。

    入力値 説明
    max_count<integer> リクエストパラメータの「max_count」に紐づける入力値。
    search_word<string> リクエストパラメータの「search_word」に紐づける入力値。
  2. リクエストパラメータに定義した「max_count」、および、「search_word」のパラメータ値を削除します。

    ../../../../_images/input_by_el1.png

    図:定義済みのパラメータ値の削除

  3. 新しく以下のパラメータ値を定義します。

    • パラメータ名 「max_count」- パラメータ値 「${max_count}
    • パラメータ名 「search_word」- パラメータ値 「${search_word}
    ../../../../_images/input_by_el2.png

    図:新規パラメータ(EL式)の追加

入力値を利用した動的設定についての詳細は「エンドポイントやヘッダへのEL式を介した動的指定」を参照してください。

5.4.5.2.4.2. 出力値

ユーザ定義(REST)の出力値は、入力値とは異なりシステムによって固定です。
IM-LogicDesignerではREST APIの実行結果として返されたレスポンスをもとに、以下の内容をユーザ定義(REST)の汎用的な出力値として定義します。
出力値 説明
status<object> - statusCode<integer> HTTPステータスコードが格納されます。
status<object> - reasonPhrase<string> HTTPステータスコードに基づく原因を表す文字列が格納されます
headers<map> ヘッダー情報が格納されます。
body<object> 実行結果(HTTPレスポンスの本体)

5.4.5.2.5. ユーザ定義(REST)を作成する。

最後に、これまでの内容を踏まえてユーザ定義(REST)を作成します。
  1. 「REST定義編集」画面を表示します。

  2. ユーザ定義の基本情報となる各項目に以下の値を入力します。

    • ユーザ定義ID「tutorial_ud_rest

    • バージョン「1」(固定)

    • ユーザ定義名
      • 標準 - 「ユーザ定義[REST]
      • 日本語、英語、中国語(中華人民共和国) - 入力なし
    • カテゴリ
      • カテゴリID - 「tutorial_user_category
    • ソート番号「3001

    ../../../../_images/implement_ud_rest1.png

    図:基礎情報の入力

  3. 入力値、および、出力値を「入力値/出力値」をもとに定義します。

    ../../../../_images/implement_ud_rest2.png

    図:入出力値の定義

  4. リクエスト情報を「リクエスト情報」をもとに定義します。

    ../../../../_images/implement_ud_rest3.png

    図:リクエスト情報の定義

  5. レスポンス情報を「レスポンス情報」をもとに定義します。

    ../../../../_images/implement_ud_rest4.png

    図:レスポンス情報の定義

  6. 登録」をクリックします。

    ../../../../_images/implement_ud_rest5.png

    図:登録

以上で、ユーザ定義(REST)の作成が完了しました。