intra-mart Accel Platform ViewCreator 管理者操作ガイド 第32版 2024-04-01

4.19. ルーティングの作成

クエリにアクセスするURLや認可など、ユーザがクエリを実行するための定義情報である「ルーティング定義」を作成します。
作成したルーティングは、IM-BloomMakerやスクラッチ開発によるアプリケーションで利用できます。

コラム

ルーティング定義作成機能は 2020 Winter(Azalea) から利用可能です。

4.19.1. ルーティング定義一覧画面

「サイトマップ」→「ViewCreator」→「ルーティング定義一覧」をクリックします。
../../_images/apply_guide_20_1.png

図:「ルーティング定義一覧」画面

項目名 説明
カテゴリ新規作成
ルーティングカテゴリを新規に作成します。
詳細は「ルーティングカテゴリの作成」を参照してください。
ルーティング新規作成
ルーティングを新規に作成します。
詳細は「ルーティングの作成」を参照してください。
認可一覧 「認可設定」画面を表示します。

4.19.2. ルーティングカテゴリの作成

ルーティングはルーティングカテゴリに紐づけられる形で管理されているため、はじめにルーティングカテゴリを作成します。
  1. 「ルーティング定義一覧」画面左上の「カテゴリ新規作成」をクリックします。

    ../../_images/apply_guide_20_2.png

    図:「ルーティング定義一覧」画面 - 「カテゴリ新規作成」

  2. ルーティングツリーに新規のルーティングカテゴリが作成され、ルーティングカテゴリ情報が表示されます。

    ../../_images/apply_guide_20_3.png

    図:ルーティングカテゴリ情報

    項目名 必須 説明
    カテゴリID 必須
    カテゴリを一意に表す文字列を設定します。
    新規作成時のみ設定可能です。登録後の変更はできません。
    カテゴリ名 標準のみ必須
    カテゴリを表す名称を設定します。
    多言語に対応しています。

    コラム

    多言語可能な項目は、ロケールによって表示内容が変化します。
    標準・日本語が設定されている場合、以下の通り表示されます。
    • 日本語(ja)ロケールが設定されているユーザの場合、「日本語」に設定したものが表示されます。
    • 日本語(ja)ロケール以外が設定されているユーザの場合、「標準」に設定したものが表示されます。
  3. ルーティングカテゴリ作成に必要な情報を入力します。

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

4.19.3. ルーティングの作成

次に、ユーザがクエリを実行するための定義情報である「ルーティング」を作成します。
  1. 追加先のルーティングカテゴリをルーティングツリーから選択しクリックします。

    ../../_images/apply_guide_20_4.png

    図:「ルーティング定義一覧」画面 - ルーティングツリー

  2. 「ルーティング定義一覧」画面左上の「ルーティング新規作成」をクリックします。

    ../../_images/apply_guide_20_5.png

    図:「ルーティング定義一覧」画面 - 「ルーティング新規作成」

  3. ルーティングツリーに新規のルーティングが作成され、ルーティング情報が表示されます。

    ../../_images/apply_guide_20_6.png

    図:ルーティング情報

    項目名 必須 説明
    カテゴリID
    カテゴリIDを表示します。
    登録内容の変更はできません。
    ルーティングID 必須
    ルーティングを一意に表す文字列を設定します。
    新規作成時のみ設定可能です。登録後の変更はできません。
    ルーティングURL 必須
    ルーティングを呼び出す際のURLを設定します。
    他のルーティングと重複するURLは設定できません。
    新規作成時のみ設定可能です。登録後の変更はできません。
    対象クエリ 必須
    実行対象のクエリを設定します。
    「検索」をクリックして実行するクエリを選択してください。
    詳細は「ルーティングのクエリ設定」を参照してください。
    メソッド 必須
    ルーティングを呼び出す際に指定するHTTPメソッドを設定します。
    新規作成時のみ設定可能です。登録後の変更はできません。
    認証方式 必須
    ルーティングの認証方式を設定します。
    各認証方式の詳細は「ルーティングの認証方式」を参照してください。
    OAuth スコープ
    OAuth認証を使用する場合のスコープを設定します。
    「検索」をクリックして使用するOAuth スコープを選択してください。
    認証方式で OAuth を選択した場合のみ設定できます。
    詳細は「ルーティングの OAuth スコープ設定」を参照してください。
    認可URI
    認可URIを表示します。登録内容の変更はできません。
    登録済みのルーティングの場合は、「認可設定」アイコンからルーティングの認可を設定できます。
    詳細は「ルーティングの認可設定」を参照してください。
    レスポンス種別
    ルーティングを実行した際に得られる出力データの形式を設定します。
    各出力データの形式の詳細は「レスポンスボディ」を参照してください。
    ルーティング名 標準のみ必須
    ルーティングを表す名称を設定します。
    多言語に対応しています。
    備考
    ルーティングの補足情報を設定します。
    多言語に対応しています。

    コラム

    多言語可能な項目は、ロケールによって表示内容が変化します。
    標準・日本語が設定されている場合、以下の通り表示されます。
    • 日本語(ja)ロケールが設定されているユーザの場合、「日本語」に設定したものが表示されます。
    • 日本語(ja)ロケール以外が設定されているユーザの場合、「標準」に設定したものが表示されます。

    注意

    • ルーティングURLに指定できる文字列は「a-z」、「A-Z」、「0-9」、「-(ハイフン)」、「_(アンダースコア)」、「/(スラッシュ)」、「.(ピリオド)」のいずれかです。
    • ルーティングURLを「/(スラッシュ)」から始めることはできません。
  4. ルーティング作成に必要な情報を入力します。

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

4.19.3.1. ルーティングのクエリ設定

実行するクエリは「クエリ検索」画面で一覧から選択できます。
  1. ルーティング情報の対象クエリの「検索」アイコンをクリックすると、「クエリ検索」画面が表示されます。

    ../../_images/apply_guide_20_7.png

    図:「クエリ検索」画面

    項目名 説明
    クエリ名検索
    一覧に表示するクエリを、クエリ名で絞り込めます。
    決定
    設定するクエリを決定します。
    一覧でクエリが選択されていない場合は、クリックできません。

    コラム

    クエリ一覧のページ毎の表示件数の選択候補は、設定ファイルの「query-list-settingsタグ」で設定できます。
    設定方法については「intra-mart Accel Platform 設定ファイルリファレンス」の「クエリ一覧のリスト設定」を参照してください。
  2. クエリを選択して「決定」をクリックすることで、ルーティング定義一覧画面のルーティング情報に反映されます。

    ../../_images/apply_guide_20_8.png

    図:「クエリ検索」画面 - クエリ選択

4.19.3.2. ルーティングの認証方式

ルーティングの認証方式により、認証処理を行います。認証方式は以下が存在します。

4.19.3.2.1. IMAuthentication

特別な認証処理を行わず、現在のCookieに紐づくセッションの認証状態のままクエリへのアクセスを実行します。

4.19.3.2.2. OAuth

OAuth認証処理を行い、クエリへのアクセスを実行します。
この認証方式を利用したルーティングを実行する場合は、ヘッダにアクセストークンを付与してリクエストを送信してください。
GET /<resource_path> HTTP/1.1
Host: localhost
Authorization: Bearer <access_token>
アクセストークンの取得方法については以下のドキュメントを参照してください。

4.19.3.2.3. Basic

Basic認証処理を行い、クエリへのアクセスを実行します。

コラム

バーチャルテナントによる複数テナントを利用している環境において、リクエスト情報を利用したテナント自動解決機能を利用していない場合のみ、Basic認証のユーザ名にテナントを指定できます。
上記環境におけるBasic認証のユーザ名の指定方法による挙動の違いは以下の通りです。
  • 「ユーザコード」の指定

    デフォルトテナントに対して認証します。

  • 「テナントID\ユーザコード」の指定

    指定したテナントに対して認証します。

4.19.3.3. ルーティングの OAuth スコープ設定

OAuth スコープは「スコープ検索」画面で一覧から選択できます。
  1. ルーティング情報の OAuth スコープの「検索」アイコンをクリックすると、「スコープ検索」画面が表示されます。

    ../../_images/apply_guide_20_36.png

    図:ルーティング情報 - OAuth スコープ

    ../../_images/apply_guide_20_37.png

    図:「スコープ検索」画面

  2. OAuth スコープを選択して「決定」をクリックすることで、ルーティング定義一覧画面のルーティング情報に反映されます。

    ../../_images/apply_guide_20_38.png

    図:「スコープ検索」画面 - スコープ選択

コラム

「スコープ検索」画面から「新規作成」をクリックすることで、新規の OAuth スコープを作成できます。
詳細は 「 OAuth 管理者操作ガイド 」 - 「 スコープの登録 」を参照してください。

4.19.3.4. ルーティングの認可設定

作成したルーティングの認可設定は、初期状態では全ての対象者条件に対して「禁止」が設定されます。
そのため、作成したルーティングに対して認可設定をする必要があります。
  1. 認可設定をするルーティングをルーティングツリーから選択します。

  2. 「認可URI」の「認可設定」アイコンをクリックします。

    ../../_images/apply_guide_20_9.png

    図:「認可URI」 - 「認可設定」アイコン

  3. 「認可設定」画面が表示されます。

    ../../_images/apply_guide_20_10.png

    図:「認可設定」画面

  4. 認可設定を行います。認可の設定方法は「intra-mart Accel Platform 認可仕様書」の「認可設定画面」を参照してください。

    注意

    認可処理を行う権限を持たないユーザが「認可」アイコンをクリックした場合、警告メッセージが表示されます。
    メッセージが表示された場合、操作したユーザに対して適切な権限が付与されているか確認してください。

4.19.3.5. ルーティングの実行確認

作成したルーティングは、OpenAPIを利用することで実行できます。
クエリの実行はREST APIを介して実行されます。
REST APIの詳細は「REST API 仕様」を参照してください。
  • ルーティング定義一覧画面では、ルーティング定義をもとに、OpenAPI上で対象のルーティングを実行するためのページへのリンクを提供します。

    ../../_images/apply_guide_20_29.png

    図:「ルーティング定義一覧」画面 - OpenAPIを開く

    ../../_images/apply_guide_20_35.png

    図:OpenAPI REST APIビューア

    ../../_images/apply_guide_20_11.png

    図:REST API実行 - クエリのメタ情報取得

    ../../_images/apply_guide_20_12.png

    図:REST API実行 - クエリの実行結果取得

4.19.4. REST API 仕様

クエリを実行するREST APIの動作仕様について説明します。

4.19.4.1. セッション管理

REST APIではリクエストヘッダ X-Intramart-Session を指定することによりセッション管理を行えます。
X-Intramart-Session には、keep, once, never の3つの値が利用できます。
ヘッダを省略した場合は once を指定した場合と同じです。
指定した値による挙動は Web API Maker と同様です。詳しい挙動については以下を参照してください。

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

リクエストパラメータを設定することで、クエリの実行条件をカスタマイズできます。
パラメータ データ型 説明
limit 数値型
最大取得レコード件数を設定します。
省略した場合は、デフォルト設定(100件)が適用されます。
0を設定した場合は全件取得します。
設定例: limit=10
offset 数値型
レコードの取得開始位置を設定します。
省略した場合は、デフォルト設定(0)が適用されます。
設定例: offset=10
columns 文字列型
取得対象とするカラムコードまたはカラム名をカンマ区切りで設定します。
省略した場合は、クエリで定義されているすべてのカラムが取得対象です。
カラムコードおよびカラム名は大文字・小文字を区別します
設定例: columns=user_cd,ccd00003,user_name
sort 文字列型
第1ソートキーとするカラムコードまたはカラム名を設定します。
省略可能です。クエリで定義されているソート順に対して、条件を追加または差し替えする場合に設定します。
order パラメータと組み合わせて使用します。
カラムコードおよびカラム名は大文字・小文字を区別します
設定例: sort=user_cd&order=asc

コラム

order パラメータを設定しないことで、クエリで定義されているソート条件を除去できます。
order 文字列型
第1ソートキー(sort)に対するソート方向を設定します。
asc または desc を設定します。
設定例: sort=user_cd&order=desc
secondSort 文字列型
第2ソートキーとするカラムコードかカラム名を設定します。
詳細は sort パラメータの説明を参照してください。
secondOrder 文字列型
第2ソートキー(secondSort)に対するソート方向を設定します。
詳細は order パラメータの説明を参照してください。
thirdSort 文字列型
第3ソートキーとするカラムコードかカラム名を設定します。
詳細は sort パラメータの説明を参照してください。
thirdOrder 文字列型
第3ソートキー(thirdSort)に対するソート方向を設定します。
詳細は order パラメータの説明を参照してください。
responseKeyType 文字列型
レスポンスデータのキー(JSON形式の場合キー、CSV形式の場合ヘッダ)になる項目を設定します。
以下のいずれかを設定できます。
  • NAME

    カラム名(物理名)をレスポンスデータのキーに設定します。

  • CODE

    カラムコードをレスポンスデータのキーに設定します。

  • CAPTION

    カラムの論理名をレスポンスデータのキーに設定します。

省略した場合は、デフォルト設定(NAME)が適用されます。
設定例: responseKeyType=NAME

注意

CODE 以外はキーが重複する可能性があり、重複した場合、後のキーにはカラムコードが使用されます。
metadata
クエリ定義のメタ情報を取得する場合に設定します。
クエリの実行結果ではなく、メタ情報がレスポンスデータに設定されます。
詳細は「レスポンスボディ」を参照してください。

コラム

動的パラメータを使用することで、リクエストパラメータに抽出条件を設定できます。
詳細は「動的パラメータ」の「<%REQUEST_PARAMETER%> タグ」を参照してください。

4.19.4.3. レスポンスヘッダ

クエリの実行が正常に完了した場合に返却されるレスポンスヘッダは以下の通りです。
パラメータ データ型 説明
x-jp-co-intra-mart-viewcreator-total-count 数値型
クエリの実行結果の総レコード件数が格納されます。
limit パラメータや offset パラメータにより、返却されるデータ件数と異なる場合があります。

4.19.4.4. レスポンスボディ

クエリ実行によりレスポンスボディに格納されるデータは、ルーティング定義に設定されているレスポンス種別により異なります。
  • JSONに変換して返却


    レスポンスボディにはJSON形式のデータが格納されます。
    {
      "data": [
        {
          "fieldName1": "field1Value1",
          "fieldName2": "field2Value1",
          "fieldName3": "field3Value1"
        },
        {
          "fieldName1": "field1Value2",
          "fieldName2": "field2Value2",
          "fieldName3": "field3Value2"
        }
      ],
      "totalCount": 2
    }
    
    data
    実行結果の一覧です。
    レコードを表すオブジェクトの配列で構成されます。
    totalCount
    実行結果の総件数です。
    レスポンスヘッダに格納される x-jp-co-intra-mart-viewcreator-total-count パラメータと同じ値が格納されます。

  • CSVとして返却


    レスポンスボディにはCSV形式のデータが格納されます。
    1行目にはCSVヘッダ、2行目以降はレコードデータが格納されます。
    fieldName1,fieldName2,fieldName3
    field1Value1,field2Value1,field3Value1
    field1Value2,field2Value2,field3Value2
    

    コラム

    CSV形式では、データがnull値の場合は空文字を出力します。

  • メタ情報の返却


    クエリ定義のメタ情報を取得した場合は、レスポンスボディにJSON形式のメタ情報が格納されます。
    {
      "columns": [
        {
          "code": "string",
          "name": "string",
          "type": "STRING",
          "caption": "string"
        }
      ],
      "conditions": [
        {
          "key": "string",
          "type": "STRING"
        }
      ]
    }
    
    columns
    クエリ定義に含まれるカラム情報の一覧です。
    • code

      ccd + 5桁の連番で採番された、クエリ定義内においてユニークなコードです。

    • name

      DDL上で定義されたフィールドの物理名です。

    • type

      カラムのデータ型です。
      “STRING”, “NUMBER”, “DATE”, “TIMESTAMP”, “BOOLEAN”のいずれかが格納されます。
    • caption

      「クエリ編集」画面で設定したキャプションです。

    conditions

    クエリ定義に含まれるリクエストパラメータの動的抽出条件(<%REQUEST_PARAMETER(KEY_NAME)%>)の一覧です。

    • key

      パラメータ名(KEY_NAME)が格納されます。

    • type

      抽出条件が設定されているカラムのデータ型です。
      “STRING”, “NUMBER”, “DATE”, “TIMESTAMP”, “BOOLEAN”のいずれかが格納されます。

コラム

クエリ実行により返却される日付型およびタイムスタンプ型のデータは、「JSONに変換して返却」、「CSVとして返却」いずれの場合も ISO 8601 形式の日時フォーマット文字列です(タイムゾーンには、システム・デフォルトのタイムゾーン(JVM のタイムゾーン)が適用されます)。

例:2017-08-01T12:34:56.789Z

注意

バイナリ型のカラムはREST APIではサポートしません。
対象のクエリにバイナリ型のカラムが含まれている場合は、クエリの実行結果、メタ情報いずれもカラムを除外した結果を返却します。

4.19.4.5. REST APIの仕様確認

次に、OpenAPIを利用してクエリ実行結果を取得するREST APIの仕様を確認します。

4.19.4.5.1. OpenAPIとは

OpenAPIはソースコードやドキュメントなどにアクセスせずに、APIの機能を理解できるREST APIの標準インタフェースを定義しています。
OpenAPI仕様はREST APIを記述するためのフォーマットです。
Swagger UIは、OpenAPI仕様で定義されたAPIのドキュメントを視覚的にレンダリングするツールです。

コラム

OpenAPIについての詳細は、以下のリンクを参照してください。

4.19.4.5.2. REST APIを実行する

  1. 仕様確認をするルーティングをツリーから選択し、「OpenAPI Specification」ボタンをクリックします。

    ../../_images/apply_guide_20_29.png

    図:REST API実行 - 「OpenAPI Specification」のクリック

  2. OpenAPIの提供するREST APIビューアの画面が新しいウィンドウで表示されます。

    ../../_images/apply_guide_20_30.png

    図:REST API実行 - OpenAPI REST APIビューア

    画面項目 説明
    Info
    APIに関するタイトルや説明、バージョンなどです。
    Server
    ターゲットサーバの接続情報です。
    Tag
    オペレーションに関連するタグ情報です。「クエリルーティング名」
    Paths
    利用可能なパスとオペレーションの情報です。
  3. クエリ実行APIの「GET」ボタンをクリックします。

    ../../_images/apply_guide_20_31.png

    図:REST API実行 - 「GET」のクリック

  4. 「Try it out」ボタンをクリックし、実行準備段階に遷移します。デフォルト値が表示され、リクエストパラメータを入力できます。

    ../../_images/apply_guide_20_32.png

    図:REST API実行 - 「Try it out」のクリック

    画面項目 説明
    Parameters
    REST APIの要求するパラメータの詳細です。
    ここでは以下が確認できます。詳細は「リクエストパラメータ」を参照してください。
    • パラメータ名、説明、タイプ
    • データ形式、デフォルト値
    「Try it out」 ボタン
    OpenAPI上から対象のREST APIの実行準備段階に遷移します。
  5. 必要項目を入力し、「Execute」ボタンをクリックします。

    入力例は以下の通りです。
    • limit : 2
    • offset : 0
    • columns : age,year,area
    • sort : age
    • order : asc
    • secondSort : year
    • secondOrder : asc
    • thirdSort : area
    • thirdOrder : asc
    • responseKeyType : NAME
    ../../_images/apply_guide_20_33.png

    図:REST API実行 - 「Execute」のクリック

  6. 実行結果が表示されます。

    ../../_images/apply_guide_20_34.png

    図:REST API実行 - 実行結果

    画面項目 説明
    Curl
    Curlを用いて対象のREST APIを実行する場合のコマンドです。
    Request URL
    実行時にリクエストを送信したURLです。
    Code
    REST APIを実行した結果として返却されたHTTPステータスコードです。
    Response body
    レスポンスの結果(Body情報)です。各出力データの形式の詳細は「レスポンスボディ」を参照してください。
    Response headers
    REST APIを実行した結果として返却されたレスポンスヘッダです。詳細は「レスポンスヘッダ」を参照してください。

4.19.5. IM-BloomMakerを使用した画面作成例

IM-BloomMakerを利用してクエリの実行結果一覧を表示する画面を作成する例を紹介します。
検索条件を入力するエリアとクエリの実行結果を一覧で表示するエリアを配置した画面を作成します。
../../_images/apply_guide_20_13.png

図:完成イメージ

注意

本作成例ではサンプルデータを使用するため、事前にテナント環境・サンプルデータセットアップが必要です。
サンプルデータの投入については「intra-mart Accel Platform セットアップガイド」の「サンプルデータの投入」を参照してください。

4.19.5.1. 実行するクエリの作成

はじめに、実行するクエリを作成します。
本作成例では、サンプルデータのクエリを利用します。
  1. 「サイトマップ」→「ViewCreator」→「クエリ一覧」から、「クエリ一覧」画面を表示します。

  2. 一覧の「日本のデータ」にチェックを付け、「クエリ一覧」画面上部の「コピー」をクリックします。

    ../../_images/apply_guide_20_14.png

    図:「クエリ一覧」画面 - クエリのコピー

  3. 一覧からコピーしたクエリ「コピー~日本のデータ」をクリックし、「クエリ編集」画面を表示します。

    ../../_images/apply_guide_20_15.png

    図:「クエリ一覧」画面 - 「コピー~日本のデータ」

  4. 「クエリ編集」画面下部の「カラム一覧」タブの「キャプション」を以下のように編集します。
    テーブル/ビュー/リソース カラム/フィールド キャプション
    sample_population year year
    sample_region name regionName
    sample_prefecture name prefectureName
    sample_age age age
    sample_prefecture_area area area
    sample_population population population
    ../../_images/apply_guide_20_16.png

    図:「クエリ一覧」画面 - キャプション設定

  5. 「クエリ編集」画面下部の「抽出条件一覧」タブをクリックします。
    ../../_images/apply_guide_20_17.png

    図:「クエリ編集」画面 - 「抽出条件一覧」タブ

  6. 「クエリ編集」画面のデザイナで「sample_population」テーブルの「year」フィールドをダブルクリックします(「抽出条件一覧」タブにカラムが追加されます)。
    ../../_images/apply_guide_20_18.png

    図:「クエリ編集」画面 - 抽出条件追加

  7. 追加した抽出条件を以下のとおりに設定します。
    • 抽出方法 : 「以上」
    • 条件値 : <%REQUEST_PARAMETER(minimumYearParameter)%>
    ../../_images/apply_guide_20_19.png

    図:「クエリ編集」画面 - 抽出条件設定

  8. 同様に、以下のとおりに抽出条件を追加します。
    • テーブル/ビュー/リソース : sample_population
    • カラム/フィールド : year
    • 抽出方法 : 「以下」
    • 条件値 : <%REQUEST_PARAMETER(maxYearParameter)%>

    • テーブル/ビュー/リソース : sample_region
    • カラム/フィールド : name
    • 抽出方法 : 「部分一致」
    • 条件値 : <%REQUEST_PARAMETER(regionNameParameter)%>
    ../../_images/apply_guide_20_20.png

    図:「クエリ編集」画面 - 抽出条件追加設定

  9. 「クエリ編集」画面上部の「保存」ボタンをクリックします。

  10. 「確認」ダイアログでクエリ名を「query_issue_32032」に変更して「決定」をクリックします。

    ../../_images/apply_guide_20_21.png

    図:「クエリ編集」画面 - クエリ保存

4.19.5.2. ルーティング定義の作成

次に、ルーティング定義を作成します。
  1. 「サイトマップ」→「ViewCreator」→「ルーティング定義一覧」から、「ルーティング定義一覧」画面を表示します。

  2. 追加先のルーティングカテゴリをルーティングツリーから選択し、「ルーティング定義一覧」画面左上の「ルーティング新規作成」をクリックします。
    ルーティングカテゴリ未作成の場合は、「ルーティングカテゴリの作成」の説明を参考にルーティングカテゴリを作成してください。
    ../../_images/apply_guide_20_22.png

    図:「ルーティング定義一覧」画面 - 「ルーティング新規作成」

  3. ルーティング情報の各項目を以下のとおりに設定します。

    • ルーティングID : routing_issue_32032
    • ルーティングURL : viewcreator/sample/routes/api/get
    • 対象クエリ : 「実行するクエリの作成」で作成したクエリ定義
    • メソッド : 「GET」
    • 認証方式 : 「IMAuthentication」
    • レスポンス種別 : 「JSONに変換して返却」
    • ルーティング名 : SampleRouting(issue32032)
    ../../_images/apply_guide_20_23.png

    図:「ルーティング定義一覧」画面 - ルーティング情報の入力

  4. 「登録」をクリックしてルーティング定義を登録します。

  5. 「認可URI」の「認可設定」アイコンをクリックします。

    ../../_images/apply_guide_20_24.png

    図:「認可URI」 - 「認可設定」アイコン

  6. 「認可設定」画面で、作成したルーティングに対する認可設定を行います。
    本作成例では、対象者条件の「認証済みユーザ」に対して「認可」を設定します。
    ../../_images/apply_guide_20_25.png

    図:「認可設定」画面 - 「認証済みユーザ」へ認可設定

4.19.5.3. 画面の作成

続いて、IM-BloomMakerを使用して画面を作成します。
IM-BloomMakerで作成する画面定義(コンテンツおよびルーティング)については、以下の完成サンプルをダウンロードしてご活用ください。
IM-BloomMakerインポートデータ : viewcreator_routing_bm_sample_issue_32032

コラム

本作成例では、IM-BloomMakerによる画面の作成手順については説明しません。
画面の作成については、「IM-BloomMaker ユーザ操作ガイド」や「IM-BloomMaker チュートリアルガイド」および intra-mart Developer SiteCookBook をご活用ください。

  1. 「サイトマップ」→「BloomMaker」→「インポート」をクリックし、IM-BloomMakerのインポート機能を利用して完成サンプルをインポートします。

    コラム

    インポート手順については、「IM-BloomMaker ユーザ操作ガイド」の「定義ファイルをインポートする」を参照してください。
  2. 完成サンプルに含まれる以下のルーティング定義に対して、「ルーティング定義の作成」の認可設定と同じく「認証済みユーザ」の「認可」を設定します。
    • ルーティングID : routing_issue_32032
    • ルーティング名 : ViewCreator SampleRouting(issue32032)

    コラム

    ルーティング定義の認可設定については、「IM-BloomMaker チュートリアルガイド」の「ルーティングの認可を設定する」を参照してください。

    注意

    ViewCreatorのルーティング定義とIM-BloomMakerのルーティング定義の認可対象を揃えてください。
    認可にずれがある場合、ユーザによっては画面の表示のみ可能(クエリの実行が不可能)な状態が発生する可能性があります。
  3. 認証済みユーザで「http://localhost:8080/imart/viewcreator/sample/routes/view/list」にアクセスし、本作成例のアプリケーション画面が表示されることを確認します。

    コラム

    ベースURLである以下の部分は環境に合わせて適宜変更してください。
    http://localhost:8080/imart

4.19.5.3.1. IM-BloomMakerとの連携

本作成例における、IM-BloomMakerとREST APIの連携について説明します。
  • REST APIの実行


    IM-BloomMakerのアクションには、指定したURLにリクエストを送信するアクションアイテムが用意されています。
    このアクションアイテムを利用することで、ViewCreatorで作成したREST APIを実行できます。
    定数 VIEWCREATOR_ROUTING_URL には、「ルーティング定義の作成」で設定したルーティングURLを指定します。
    {
      "VIEWCREATOR_ROUTING_URL": "viewcreator/sample/routes/api/get"
    }
    
    ../../_images/apply_guide_20_26.png

    図:executeViewCreatorApi アクション

  • REST APIのリクエストパラメータの設定


    IM-BloomMakerのアクションアイテムには、リクエストパラメータとして渡す変数を設定する機能が用意されています。
    リクエストパラメータを格納する変数を定義することで、REST APIのリクエストパラメータを設定できます。
    ../../_images/apply_guide_20_27.png

    図:executeViewCreatorApi アクション - リクエストパラメータ

    本作成例では、リクエストパラメータを設定する変数を以下のように定義しています。
    キー名 説明
    viewcreatorApiRequest.limit 最大取得レコード件数を設定する limit パラメータの値を保持します。
    viewcreatorApiRequest.offset レコードの取得開始位置を設定する offset パラメータの値を保持します。
    viewcreatorApiRequest.columns 取得対象とするカラムを設定する columns パラメータの値を保持します。
    viewcreatorApiRequest.sort 第1ソートキーを設定する sort パラメータの値を保持します。
    viewcreatorApiRequest.order 第1ソートキーに対するソート方向を設定する order パラメータの値を保持します。
    viewcreatorApiRequest.secondSort 第2ソートキーを設定する secondSort パラメータの値を保持します。
    viewcreatorApiRequest.secondOrder 第2ソートキーに対するソート方向を設定する secondOrder パラメータの値を保持します。
    viewcreatorApiRequest.thirdSort 第3ソートキーを設定する thirdSort パラメータの値を保持します。
    viewcreatorApiRequest.thirdOrder 第3ソートキーに対するソート方向を設定する thirdOrder パラメータの値を保持します。
    viewcreatorApiRequest.responseKeyType レスポンスデータのキー項目を設定する responseKeyType パラメータの値を保持します。
    viewcreatorApiRequest.minimumYearParameter クエリの抽出条件(動的パラメータ <%REQUEST_PARAMETER(minimumYearParameter)%>)の値を保持します。
    viewcreatorApiRequest.maxYearParameter クエリの抽出条件(動的パラメータ <%REQUEST_PARAMETER(maxYearParameter)%>)の値を保持します。
    viewcreatorApiRequest.regionNameParameter クエリの抽出条件(動的パラメータ <%REQUEST_PARAMETER(regionNameParameter)%>)の値を保持します。

  • REST APIの実行結果の取得


    IM-BloomMakerのアクションアイテムには、レスポンスデータを格納する変数を設定する機能が用意されています。
    レスポンスデータを格納する変数を定義することで、REST APIの実行結果を変数を通して取得できます。
    ../../_images/apply_guide_20_28.png

    図:executeViewCreatorApi アクション - レスポンスデータ

    本作成例では、レスポンスデータを格納する変数を以下のように定義しています。
    キー名 説明
    viewcreatorApiResponse.data
    REST APIのレスポンスボディの data パラメータの格納先です。
    取得対象の各カラムの値を格納する変数で構成された配列型の変数です。
    変数の名称は、responseKeyType パラメータに「CAPTION」を設定しているので、カラムの論理名(yearregionNameprefectureNameageareapopulation)を使用します。
    viewcreatorApiResponse.totalCount REST APIのレスポンスボディの totalCount パラメータの格納先です。

  • REST APIの実行結果と画面の連携


    REST APIの実行結果を格納する変数と画面上に配置したエレメントを関連付けることで、実行結果と画面を連携できます。
    本作成例では、画面上に配置したエレメントと変数を以下のように関連付けています。
    エレメント 説明
    テーブルコンテナ (繰り返し)
    REST APIの実行結果の一覧(data パラメータ)と関連付けるために、list プロパティに変数 viewcreatorApiResponse.data を設定します。
    また、各テーブルセルに配置した「ラベル」エレメントにREST APIの実行結果を表示するために、textContent プロパティに各カラムデータの格納先変数(yearregionNameprefectureNameageareapopulation)を設定します。
    ページネーション
    REST APIの実行結果の総件数(totalCount パラメータ)と関連付けるために、「ページネーションリスト」エレメントの total プロパティに viewcreatorApiResponse.totalCount を設定します。