Selamat datang di tulisan saya yang baru, salam kenal bagi para pembaca. Saya ucapkan selamat datang bagi yang baru pertama kali masuk ke blog saya, serta tidak lupa terimakasih bagi para pengunjung yang beberapa kali mampir ke sini semoga kita sama-sama mendapatkan ilmu yang bermanfaat.
Postingan blog kali ini akan membahas sedikit mengenai dasar REST web service menggunakan spesifikasi JAX-RS dengan implementasinya menggunakan Jersey. Pun demikian tulisan saya ini tidak akan membahas mengenai apa itu web service dan apa pula itu REST web service, silahkan googling dan pasti akan ada banyak sekali penjelasannya. Karena ini tutorial sangat dasar maka cukup aplikasi hello world saja, yang penting bisa running dulu.
Struktur Project
Di bawah ini adalah struktur akhir dari project maven yang nantinya akan kita buat bersama-sama
Dependency
Ada beberapa library yang kita butuhkan supaya apa yang kita kerjakan bisa berjalan nantinya. Tambahkan library-library berikut ini pada file pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-servlet</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> <version>1.1.1</version> </dependency> </dependencies> |
REST Service
Oke, sekarang saatnya menulis sebuah kelas yang menjadi REST service kita, kelas ini kita beri nama HelloService
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package com.agungsetiawan.jaxrshello; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/hello") public class HelloService { @GET @Path("/{param}") public Response getHello(@PathParam("param") String message){ String output="Hello "+message; return Response.status(200).entity(output).build(); } } |
Dengan @Path seperti di atas maka kelas ini dapat diakses melalui url host/xxx/hello/Agung. xxx adalah url pattern dari servlet mapping yang digunakan dan Agung adalah parameter dari method getHello di atas.
web.xml
Supaya kelas HelloService bisa diakses melalui url maka perlu dilakukan sedikit konfigurasi pada file web.xml. Berikut adalah konfigurasinya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>jersey-servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.agungsetiawan.jaxrshello</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey-servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> |
Dari kode di atas maka kita menggunakan url pattern berupa /rest/
Run It!
Arahkan browser pada http://localhost:8084/JaxRsHello/rest/hello/Agung
Sangat sangat sederhana 🙂
Namun tenang saja karena kita akan terus belajar maka pembahasan mengenai JAX-RS pun masih akan terus berlanjut. Jadi stay tuned di blog saya…
Mantap bro izin