REST風サービスをJavaEEで構築する方法05(パラメータの受け取り編)
今回はRESTクライアントからREST風サービスへパラメータを送信する方法を紹介する。
具体的には「@QueryParam」「@FormParam」「@PathParam」を使用し、受け取るパラメータを定義する。
<前提条件>
下記の記事を読了していること。
・REST風サービスをJavaEEで構築する方法01(導入編)
・REST風サービスをJavaEEで構築する方法02(雛形プロジェクト編)
・REST風サービスをJavaEEで構築する方法03(RESTクライアント編)
・REST風サービスをJavaEEで構築する方法04(各メソッド編)
<全体像から見た位置づけ>
主にApi層の追加編集を行う。機能確認のためにRESTクライアントの追加編集も行う。
<手順概要>
1.Api層の追加実装を行う
2.index.htmlファイルの追加実装を行う
<手順詳細>
1.Api層の追加実装を行う
REST風サービスをJavaEEで構築する方法04(各メソッド編)で編集した「SampleApi」クラスを追加編集し、「@QueryParam」「@FormParam」「@PathParam」を使用して、受け取るパラメータを定義する。
package lab.moonmt.SampleRest.api; 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; @Path("sampleApi") public class SampleApi { @GET @Path("getSample") public String getSampleMethod( @QueryParam("id") String id, //...(1) @QueryParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); return "Hello REST world(GET)" + id + name; } @POST @Path("postSample") public String postSampleMethod( @FormParam("id") String id, //...(2) @FormParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); return "Hello REST world(POST)" + id + name; } @PUT @Path("putSample") public String putSampleMethod( @FormParam("id") String id, //...(3) @FormParam("name") String name ){ System.out.println("id:" + id + ", name:" + name); return "Hello REST world(PUT)" + id + name; } @DELETE @Path("deleteSample/{id}") //...(4) public String deleteSampleMethod( @PathParam("id") String id //...(5) ){ System.out.println("id:" + id); return "Hello REST world(DELETE)" + id; } }
ソースコード解説
番号 | 説明 |
---|---|
(1) | GETメソッドでパラメータを受け取る場合は「@QueryParam」を使用して定義する。 |
(2) | POSTメソッドでパラメータを受け取る場合は「@FormParam」を使用して定義する。 |
(3) | PUTメソッドでパラメータを受け取る場合は「@FormParam」を使用して定義する。 |
(4) | DELETメソッドでパラメータを受け取る場合は、前準備として「@Path」に{}でパラメータ名を定義する。 |
(5) | DELETメソッドでパラメータを受け取る場合は、「@Path」で定義したパラメータ名を「@PathParam」を使用して定義する。 |
2.index.htmlファイルの追加実装を行う
REST風サービスをJavaEEで構築する方法04(各メソッド編)で編集した、index.htmlファイルを追加編集する。
<!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- jQueryライブラリの読み込み --> <script src='js/libs/jquery-1.11.2.min.js'></script> <!-- RESTクライアントの記述 --> <script> $(function(){ $('#btnGet').on('click', function(){ $.ajax({ type: "GET", url: "http://localhost:8080/SampleRest/webresources/sampleApi/getSample", data: {"id":"0001","name":"GET_param"}, //...(1) success: function(data){ alert(data); } }); }); $('#btnPost').on('click', function(){ $.ajax({ type: "POST", url: "http://localhost:8080/SampleRest/webresources/sampleApi/postSample", data: {"id":"0002","name":"POST_param"}, //...(2) success: function(data){ alert(data); } }); }); $('#btnPut').on('click', function(){ $.ajax({ type: "PUT", url: "http://localhost:8080/SampleRest/webresources/sampleApi/putSample", data: {"id":"0003","name":"PUT_param"}, //...(3) success: function(data){ alert(data); } }); }); $('#btnDelete').on('click', function(){ $.ajax({ type: "DELETE", url: "http://localhost:8080/SampleRest/webresources/sampleApi/deleteSample/0004", //...(4) success: function(data){ alert(data); } }); }); }); </script> </head> <body> <input type="button" value="GETメソッド" id="btnGet" /><br> <input type="button" value="POSTメソッド" id="btnPost" /><br> <input type="button" value="PUTメソッド" id="btnPut" /><br> <input type="button" value="DELETEメソッド" id="btnDelete" /> </body> </html>
ソースコード解説
番号 | 説明 |
---|---|
(1) | 送信するパラメータを「名前」「値」の組み合わせで指定している |
(2) | 送信するパラメータを「名前」「値」の組み合わせで指定している |
(3) | 送信するパラメータを「名前」「値」の組み合わせで指定している |
(4) | 送信するパラメータをURLの末尾に指定している |
<動作確認>
プロジェクトを実行し、ブラウザに表示されたボタンを押下すると、送信したパラメータ値を含むメッセージがダイアログに表示される事を確認する。
※【POSTメソッド】ボタンを押下した場合の表示例
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ログ編)
<お勧め書籍>