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ログ編)


<お勧め書籍>

わかりやすいJavaEEウェブシステム入門
JavaEEに関して基本的なことが分かり易く記述されている。
JavaEEに関する最初の1冊としてお勧めである。
Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava
「金魚本」の愛称を持つJavaEEの教科書的な書籍である。
JavaEEを腰を据えて学びたい人にお勧めする1冊!!