REST風サービスをJavaEEで構築する方法06(JSON返却編1)
今回はREST風サービスからRESTクライアントへ、JSON形式のデータを返却する方法を紹介する。
前回まで作成したREST風サービスは、処理結果として単純な文字列を返却するものであった。
REST風サービスの場合、処理結果をJSON形式で返却することが多いので、今回はその方法を紹介する。
<前提条件>
下記の記事を読了していること。
・REST風サービスをJavaEEで構築する方法01(導入編)
・REST風サービスをJavaEEで構築する方法02(雛形プロジェクト編)
・REST風サービスをJavaEEで構築する方法03(RESTクライアント編)
・REST風サービスをJavaEEで構築する方法04(各メソッド編)
・REST風サービスをJavaEEで構築する方法05(パラメータの受け取り編)
<全体像から見た位置づけ>
Api層の追加編集を行う。
<手順概要>
1.JSONICライブラリをダウンロードする
2.JSONICライブラリをプロジェクトに追加する
3.Api層の追加実装を行う
<手順詳細>
1.JSONICライブラリをダウンロードする
下記サイトから、JSONICライブラリをダウンロードする。
http://jsonic.sourceforge.jp/index.html
ダウンロードしたzipファイルには、複数のファイルが含まれているが、使用するのは「jsonic-x.y.z.jar」(x,y,zはバージョン番号)である。
2.JSONICライブラリをプロジェクトに追加する
プロジェクトフォルダをFinderで開き、右クリックし表示されたメニューで「新規フォルダ」を選択する。
「libs」という名前のフォルダを作成し、その配下に手順1でダウンロードした、JSONICライブラリのjarファイルを格納する。
NetBeansに戻り、プロジェクトツリー上の「ライブラリ」を右クリックし、[JAR/フォルダの追加]を選択する。
表示されたダイアログ上で、上記手順で「libs」フォルダに格納した、JSONICライブラリのjarファイルを選択し、【Choose】ボタンを押下する。
プロジェクトツリー上のライブラリ配下に、JSONICライブラリが追加された事を確認する。
3.Api層の追加実装を行う
REST風サービスをJavaEEで構築する方法05(パラメータの受け取り編)で編集した「SampleApi」クラスを追加編集する。
package lab.moonmt.SampleRest.api; import java.util.HashMap; import java.util.Map; import javax.ws.rs.DELETE; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.QueryParam; import net.arnx.jsonic.JSON; @Path("sampleApi") public class SampleApi { @GET @Path("getSample") public String getSampleMethod( @QueryParam("id") String id, @QueryParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); Map<String,String> map = new HashMap<>(); //...(1) map.put("status", "success"); map.put("id", id); map.put("name", name); return JSON.encode(map); //...(2) } @POST @Path("postSample") public String postSampleMethod( @FormParam("id") String id, @FormParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); Map<String,String> map = new HashMap<>(); //...(1) map.put("status", "success"); map.put("id", id); map.put("name", name); return JSON.encode(map); //...(2) } @PUT @Path("putSample") public String putSampleMethod( @FormParam("id") String id, @FormParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); Map<String,String> map = new HashMap<>(); //...(1) map.put("status", "success"); map.put("id", id); map.put("name", name); return JSON.encode(map); //...(2) } @DELETE @Path("deleteSample/{id}") public String deleteSampleMethod( @PathParam("id") String id ){ System.out.println("id:" + id); Map<String,String> map = new HashMap<>(); //...(1) map.put("status", "success"); map.put("id", id); return JSON.encode(map); //...(2) } }
ソースコード解説
番号 | 説明 |
---|---|
(1) | JSON形式のデータとして返却したい内容を、Mapに格納する。 |
(2) | JSONICライブラリの「JSON」クラスの「encode」メソッドを使用して、MapデータをJSON形式に変換し返却する。 |
<動作確認>
プロジェクトを実行し、ブラウザに表示されたボタンを押下すると、JSON形式のデータがダイアログに表示されることを確認する。
※【GETメソッド】ボタンを押下した場合の表示例
Enjoy Programing!!
<関連記事>
・REST風サービスをJavaEEで構築する方法01(導入編)
・REST風サービスをJavaEEで構築する方法02(雛形プロジェクト編)
・REST風サービスをJavaEEで構築する方法03(RESTクライアント編)
・REST風サービスをJavaEEで構築する方法04(各メソッド編)
・REST風サービスをJavaEEで構築する方法05(パラメータの受け取り編)
・REST風サービスをJavaEEで構築する方法06(JSON返却編1)[本記事]
・REST風サービスをJavaEEで構築する方法07(JSON返却編2)
・REST風サービスをJavaEEで構築する方法08(Logic層編)
・REST風サービスをJavaEEで構築する方法09(DB接続設定編)
・REST風サービスをJavaEEで構築する方法10(DAO層編1)
・REST風サービスをJavaEEで構築する方法11(DAO層編2)
・REST風サービスをJavaEEで構築する方法12(DAO層編3)
・REST風サービスをJavaEEで構築する方法13(SQLログ編)
<お勧め書籍>