Pembuatan RESTful Web Service “Hello World” dengan PHP & Java Husni [email protected] Membangun REST API dengan PHP Sekedar Menyapa ☺ Membuat Direktori: C:\XAMPP\htdocs\API • Nanti, semua file diletakkan di sini: halo.php (provider API), haloclient.php (customer API, sekaligus aplikasi web) dan .htaccess (URL rewriter) 3 Halo.php: Aplikasi Web Biasa, Belum API • Jika id bernilai 5 tampilkan... Jika tidak... Dan jika tidak ada id-nya 4 Mengakses halo.php 5 Ingat Arsitektur Web Service • Sumber data disediakan oleh API Provider • Pengguna API adalah Aplikasi API Customer, bukan pengguna akhir (yang menggunaklan Web browser atau Mobile Apps). • Aplikasi web biasanya disediakan oleh API Cusromer. Database Halo.php .htaccess API Provider HTTP Server haloclient.php API Customer HTTP Server User: Web Browser 6 Halo.php diakses oleh haloclient.php • Pengguna (via Web Browser atau mobile apps.) tidak mengakses API Provider, tetapi mengakses aplikasi web: haloclient.php • Haloclient.php juga bertindak sebagai API customer yang mengakses halo.php 7 User Mengakses haloclient.php • http://localhost/api/haloclient.php Sudah Sesuai Kaidah Web Service! Tetapi Belum RESTful 8 Jadikan RESTful Web Service ☺ • Belum RESTful: http://localhost/api/halo.php?id=5 • Agar RESTful, URL Request Harus diubah menjadi, misalnya: http://localhost/api/hello/5 • Manfaatkan URL Rewriter di sisi Provider: .htaccess 9 Contoh Akses dari Pengguna 10 Membangun REST API dengan Java Hello World! Apa yang diperlukan? • Java Virtual Machine (JDK) 1.8 atau dikenal dengan Java 8 • IDE: Eclipse, Netbeans edisi Enterprise (EE) • Framework: Jersey, berisi banyak file .jar • Server web atau Container: Tomcat 8 atau 8.5 • Web Browser • Maven? Tidak harus! 12 Membuat REST API • Dibuat di sisi Provider • Langkah-langkahnya: 1. 2. 3. 4. 5. 6. Akan diperlihatkan langkah-langkah pembuatan RESTful Web Service Simpel di Eclipse Membuat Proyek Web Dinamis Membuat Paket (Package) Menyalin file .jar dari bundle Jersey Mengkonfigurasi web.xml Yang diperlukan: Menulis kode program API • JDK 1.8 atau terkenal dengan Java 8 Menjalankan API di Container • EclipseEE : IDE pengembangan aplikasi Enterprise • Pustaka Jersey (download bundle .zip) • Web Server atau Container Tomcat 8 atau 8.5 13 1. Membuat Proyek Web Dinamis File > New > Dynamic Web Project 14 2. Membuat Paket: id.ac.trunojoyo.husni Klik Kanan Nama Proyek > New > Package Struktur direktori setelah pembuatan Package 15 3. Menyalin file .jar dari bundle Jersey • Ekstrak bundle .zip dari pustaka Jersey • Salin semua file berekstensi .jar ke dalam folder WebContent > META-INF > Lib • Klik kanan nama Proyek > Build Path > Configure Build Path... • Klik Add JARs... • Lanjutkan. 16 4. Konfigurasi web.xml <?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>RESTfulHelloWorld</display-name> <servlet> <servlet-name>REST Web Services Hello World</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>id.ac.trunojoyo.husni</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>REST Web Services Hello World</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> 17 5. Menulis Kode REST API: Kelas HelloWorld Klik Kanan Nama Proyek > New > Class package id.ac.trunojoyo.husni; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/helloworld") //Atur path ke URL dasar + /helloworld public class HelloWorld { // Metode ini dipanggil jika requestnya TEXT_PLAIN @GET @Produces(MediaType.TEXT_PLAIN) public String sayPlainTextHello() { return "Hello World REST Web Services !"; } 18 5. Menulis Kode REST API: Kelas HelloWorld Klik Kanan Nama Proyek > New > Class // Metode ini dipanggil jika requestnya XML @GET @Produces(MediaType.TEXT_XML) public String sayXMLHello() { return "<?xml version=\"1.0\"?>" + "<hello> Hello World REST Web } Services !</hello>"; // Metode ini dipanggil jika requestnya HTML @GET @Produces(MediaType.TEXT_HTML) public String sayHtmlHello() { return "<html> " + "<title>" + "Hello World REST Web Services !" + "</title>" + "<body><h1>" + "Hello World REST Web Services !" + "</body></h1>" + "</html> "; } } //akhir kelas 19 6. Menjalankan REST API Kerjasama dengan Container Tomcat 8.5 • Klik kanan nama proyek > Run As > Run On Server Klik Finish Klik Next 20 Hasil Pengujian: Langsung di Eclipse String dalam format plain text Via Google Chrome! String dalam format HTML 21 Mengakses REST API Menggunakan Jersey • Cukup mudah.... • Coba praktikkan secara mandiri! • Coba juga gunakan kelas URL dari Java untuk mengakses Web Service RESTful tersebut 22