REST APIによるサーバー・クライアント間の通信処理
REST APIによるサーバー・クライアント間の通信処理について記載します。
基本説明
本製品では、ク ライアントとサーバー間のデータ通信をREST APIを利用して行います。
REST APIは、クライアントからのリクエストをサーバーに届け、サーバーからのレスポンスを返す仲介役として機能します。
実装概要
REST APIの作成にはiAPが提供する「Web API Maker」を利用します。
Web API Makerの仕様詳細は、下記ドキュメントを参照してください。
intra-mart Accel Platform Web API Maker プログラミングガイド
https://document.intra-mart.jp/library/iap/public/im_web_api_maker/im_web_api_maker_programming_guide/texts/introduction/index.html
実装手順
REST APIの作成および認可設定を行い、作成したREST APIを呼び出すまでの流れを説明します。
REST APIの作成
REST APIを作成します。
- XXXServiceFactory.java
ファクトリクラス、および、サービスクラスのインスタンス生成を行います。 - XXXService.java
REST APIに実装する処理を設定します。 - XXXServiceInterface.java
リクエスト情報を設定します。 - XXXParam.java
リクエストパラメータデータを定義します。 - XXXResult.java
クライアントへのレスポンスデータを定義します。
- 各ファイルのファイル名とクラス名またはインタフェース名は同一にしてください。
- 本製品(PC版)では、セッション認証をサポートする@IMAuthenticationを認証方式として利用しています。
- 新規でREST APIを作成する場合は、@Pathに指定するREST APIのURIは、api以下のパスが製品の命名規則と被らないように設定してください。
REST APIの認可設定
作成したREST APIを認可リソースとして登録し、ユーザに実行権限を付与します。
-
テナント管理者としてログインし「グローバルナビ」-「テナント管理」-「認可」をクリックし、認可設定画面を表示します。
-
リソースの種類を「DPS」に変更します。
-
作成したREST APIの認可リソースを追加します。
備考「リソースURI」は、サービスインタフェースクラスファイル内の@Pathに付与したURIを指定してください。
その他の項目は任意で設定してください。 -
リソースに対して実行権限を付与する範囲を設定します。
認可は標準機能を利用してインポートも可能です。
詳しくは、「intra-mart Accel Platform 認可仕様書」を参照してくださ い。
https://document.intra-mart.jp/library/iap/public/im_authz/im_authz_specification/texts/components/administration/import_export.html
REST APIを実行する
クライアントサイド処理にて、REST APIの呼び出しを行います。 利用方法は下記を参照してください。
intra-mart Accel Platform Web API Maker プログラミングガイド - 5. 作成したAPIの利用について
https://document.intra-mart.jp/library/iap/public/im_web_api_maker/im_web_api_maker_programming_guide/texts/how_to_use_api/index.html
参考
内部共通関数(REST API実行)
以下、参考として、本製品が内部利用しているREST API呼び出し用の共通関数を記載します。
関数の詳細については、対象のソースを参照してください。
REST API実行に利用する主なAPI一覧
対象ファイル:scmn/csjs/common.js
関数名:scmnAjaxRestGetData
内容:REST(ajax)でWebAPIを呼び出します。
内部共通関数(サーバー・クライアント間の一連する処理)
なお、本製品のクライアント処理では、以下の関数を利用してREST APIによるサーバ処理呼び出しから、画面への処理結果の表示までを行っています。
REST API実行を含むサーバー・クライアント間の一連の処理に利用できる主なAPI一覧
対象ファイル:ssfa/csjs/common/ssfa.js
-
ssfaPage_setSectionInputData
詳細画面表示 時および更新画面初期表示時の、登録情報の取得と画面への設定を行います。
scmnAjaxRestGetDataを利用しWebAPI実行後、画面上に処理結果メッセージを表示します。 (例:取得処理に失敗しました。)
取得が成功した場合、画面項目とのマッピングを行い、scmnSetInputItemDataを実行し、画面上への値の設定までを実行します。 -
ssfaPage_insert
登録処理を実施します。 scmnAjaxRestGetDataを利用しREST API呼び出し後、画面上に処理結果メッセージを表示します。 (例:登録処理に失敗しました。) -
ssfaPage_update
更新処理を実施します。 scmnAjaxRestGetDataを利用しREST API呼び出し後、画面上に処理結果メッセージを表示します。 (例:更新処理に失敗しました。) -
ssfaPage_delete
削除処理を実施します。 scmnAjaxRestGetDataを利用しREST API呼び出し後、画面上に処理結果メッセージを表示します。 (例:更新処理に失敗しました。) -
ssfaList_getData
一覧の表示データの読み込みを実施します。 scmnAjaxRestGetDataを通してREST API呼び出し、一覧の表示データを返却します。 -
ssfaPage_getInputData
入力画面から入力情報を取得します。 ssfaPage_updateやssfaPage_insertなどで入力情報を取得する際に合わせて利用します。