Kalau ada web service tentu juga ada klien yang memanfaatkan layanan yang telah disediakan tersebut. Kalau tidak ada klien lalu buat apa capek-capek bikin web service. Tulisan ini bermaksud menunjukkan pembuatan klien sebuah web service yang dibuat dengan memanfaatkan library Jersey client.
Dasar REST Web Service Menggunakan JAX-RS (Jersey)
Output JSON pada JAX-RS (REST Web Service)
Dependensi
Tambahkan sebuah library pada file pom.xml. Library ini berisi kelas-kelas untuk menyusun klien.
1 2 3 4 5 |
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.17.1</version> </dependency> |
Klien
Pada tulisan yang telah lalu ketika kita mengakses http://localhost:8084/JaxRsHello/rest/hello/customers maka kita akan memperoleh sebuah String Json yang merepresentasikan data beberapa customer.
1 2 |
[{"id":1,"username":"blinkawan","firstName":"Agung","lastName":"Setiawan","address":"Kamulan Bhumishambara"}, {"id":2,"username":"haurilnisfari","firstName":"Hauril","lastName":"Maulida Nisfari","address":"Medang Kamulan"}] |
Tugas klien adalah menerima data berupa JSON tadi yang diberikan oleh web service untuk dimanfaatkan sesuai keperluan. Sebelum bisa dimanfaatkan tentu perlu dilakukan konversi dari data JSON menjadi objek yang dikenali oleh bahasa pemrograman yang digunakan sebagai klien.
Klien sengaja saya buat sangat sederhana dengan bentuk aplikasi konsol yang menerima data JSON dari web service kemudian mengubahnya menjadi sebuah List. Pengecekan saya lakukan dengan cara primitif, yaitu mencetak hasilnya ke konsol, kalau mau pakai cara modern silahkan pakai JUnit, saya sedang malas membuatnya hehehe…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package com.agungsetiawan.jaxrshello.client; import com.agungsetiawan.jaxrshello.entity.Customer; import com.sun.jersey.api.client.GenericType; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; import com.sun.jersey.api.json.JSONConfiguration; import java.util.List; import javax.ws.rs.core.MediaType; public class Client { public static void main(String[] args){ ClientConfig clientConfig = new DefaultClientConfig(); clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); com.sun.jersey.api.client.Client client=com.sun.jersey.api.client.Client.create(clientConfig); WebResource webResource=client.resource("http://localhost:8084/JaxRsHello/rest"); List<Customer> customers=webResource.path("/hello/customers").accept(MediaType.APPLICATION_JSON).get(new GenericType<List<Customer>>() {}); //cek output for(Customer c:customers){ System.out.println(c.getFirstName()+" "+c.getLastName()); } } } |
output:
1 2 |
Agung Setiawan Hauril Maulida Nisfari |
Kesimpulan
Dengan menggunakan Jersey Client kita bisa membuat sebuah klien yang mengkonsumsi JSON yang dihasilkan oleh web service dan mengubahnya kembali menjadi objek Java untuk dimanfaatkan lebih lanjut. Selain itu pembuatan klien bisa dilakukan dengan mudah berkat bantuan library tersebut.
kalau yang dikirim dari service bukan berupa list gimana om? misalnya hanya angka saja