CookBook

Web API Maker を利用した API の作成方法

投稿日:

この CookBook では、Web API Maker を利用した API の作成方法 について紹介しています。
Web API Maker を利用したプログラミングは intra-mart Accel Platform Web API Maker プログラミングガイド に書かれていますが、この CookBook では簡易なサンプルプログラムを元に作成方法を紹介します。

完成イメージ


1. https://dev.intra-mart.jp/imart/im_cookbook/159976/get を開きます。
2. 以下のようなレスポンスが表示されます。(anonymous の部分はログイン時にはログインユーザコードが表示されます)

 

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

e builder プロジェクト : im_cookbook_152112.zip
imm ファイル : im_cookbook_159976-1.0.0.zip

ローカル環境で表示させる場合は、以下のURLにアクセスしてください。
http://localhost:8080/imart/im_cookbook/159976/get
なおベースURLである以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. packages ファイルを作成します。
  2. ファクトリを実装します。
  3. サービスを実装します。
  4. サービスにアクセスします。

1. packages ファイルを作成します。

以下のような packages ファイルを作成します。

src/main/resources/META-INF/im_web_api_maker/packages

ファイルの中身はパッケージを書いた一行のみです。
packages ファイルは拡張子も付けません。

このファイルを配置することで、パッケージ「jp.co.intra_mart.cookbook.cookbook159976」配下にある @WebAPIMaker アノテーションが付与されたクラスが Web API Maker に認識されるようになります。
逆に言えば、これから作成するファクトリやサービスクラスはパッケージ「jp.co.intra_mart.cookbook.cookbook159976」配下に作成します。

2. ファクトリを実装します。

src/main/java/jp/co/intra_mart/cookbook/cookbook159976/MyServiceFactory.java

行数 説明
7 ファクトリクラスには @WebAPIMaker アノテーションを付与します。
9-12 ファクトリ生成メソッドを定義します。単に、自身のインスタンスを new して返却します。
14-17 サービス生成メソッドを定義します。単に、サービスのインスタンスを new して返却します。

3. サービスを実装します。

src/main/java/jp/co/intra_mart/cookbook/cookbook159976/MyService.java

行数 説明
9 このサンプルでは特別な認証処理を行わないため @IMAuthentication アノテーションを付与します。
11 この API の URL を http://localhost:8080/imart/im_cookbook/159976/get と定義します。
12 この API には GET でアクセスできるように定義します。
13 メソッド名は何でも構いません。戻り値に API の戻り値とした型を指定します。
14-16 サービスメソッドを定義します。この API では Hello {ユーザコード} を返却します。

3. サービスにアクセスします。

Java で定義した API の戻り値は String ですが、REST API の戻り値は json もしくは xml になります。
リクエストヘッダー Accept に application/json を指定した場合、json で返却され、application/xml を指定した場合 xml で返却されます。

Accept: application/json でアクセス

以下のような json が返却されます

Accept: application/xml でアクセス

以下のような xml が返却されます

このように単純な実装だけで、REST API を作成することが可能です。
是非ご活用ください。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ワークスペースカレンダーアイテムでスケジュール機能と連携したスケジュールを登録する方法

このCookBookでは、intra-mart Accel Collaboration ワークスペースのワークスペースカレンダーについて紹介しています。 intra-mart Accel Collab …

no image

IM-FormaDesignerで作成したフォーム内でIME入力モードを制御する方法【IE・EDGE】

このCookbookでは、IM-FormaDesignerで作成したフォーム内の 画面アイテム「文字列」と画面アイテム「グリッドテーブル」のIME入力モードを制御する方法を紹介します。 入力モードを制 …

no image

Formaのスクリプトから処理対象者を制御するには

このCookBookでは、スクリプトを利用してIM-Workflowの動的ノード(動的承認、縦配置、横配置)の処理対象者を制御する方法をご紹介します。 スクリプトから動的処理対象者設定機能を利用するこ …

no image

IM-BloomMaker コンボボックスエレメントのサジェストにサーバから取得した値を表示する

このCookBookでは、intra-mart Accel Platform 2020 Spring から利用可能になったコンボボックスエレメントのサジェストにサーバから取得した値を表示する方法につい …

IM-BloomMaker のアクション「URL ○ にリクエストを送信する」の使い方

このCookBookでは、「URL ○ にリクエストを送信する」アクションを使ってサンプル画面を作成する方法を紹介します。 2019 Summer では「URL ○ にアクセスする」でしたが、 201 …

RSSRSSRSSRSS