Hello JAX-RS
作り方
1.JAX-RS のランタイムを用意する
2.Application のインスタンスを定義する
RESTのURLを定義する
HelloApplication.java
package hello;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class HelloApplication extends Application{
}
3.リクエストパラメータを定義する
POJOでOK
get や set は自動でランタイムがやってくれる
HelloRequest.java
package hello;
public class HelloRequest {
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
4.レスポンスを定義する
POJOでOK
get や set は自動でランタイムがやってくれる
JSON や XML への変換も自動でランタイムがやってくれる
HelloResponse.java
package hello;
public class HelloResponse {
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
5.ロジックを定義する
HelloServlet.java
package hello;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
@Produces("application/json; charset=UTF-8")
@Consumes(MediaType.APPLICATION_JSON)
public class HelloServlet {
@POST
public HelloResponse getMessage(HelloRequest request) {
try {
HelloResponse response = new HelloResponse();
response.setMessage("こんにちは");
return response;
} catch (Exception e) {
// Utils.handleException(e);
e.printStackTrace();
}
return null;
}
}
6.クライアントから呼び出す
helloajax_jaxrs.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello Ajax (JSON)</title>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
function sendText() {
var params = {
"message" : "Hello"
// "key1" : "value1",
// "key2" : "value2"
};
$.ajax({
type : "post",
url : "/hellojaxrs/rest/hello",
data : JSON.stringify(params),
contentType : 'application/json',
dataType : "json",
success : function(result, dataType) {
console.log("OK1");
console.log(result);
console.log(result.message);
},
complete : function(json_data) {
console.log("OK2");
}
});
}
</script>
</head>
<body>
<div>
<input type="button" name="btnSend" style="font-size: 16px;"
value="送信" onclick="sendText()">
</div>
</body>
</html>
実行結果
ブラウザのコンソール
OK1
Object {message:"こんにちは"}
こんにちは
OK2
#JAX RS
#POJO
#Ajax
#JSON
#Java