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 <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">
RESTfulHelloWorld <servlet> <servlet-name>REST Web Services Hello World
<servlet-class>org.glassfish.jersey.servlet.ServletContainer
<param-name>jersey.config.server.provider.packages <param-value>id.ac.trunojoyo.husni 1 <servlet-mapping>
<servlet-name>REST Web Services Hello World
/rest/*
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 "" + "
Hello World REST Web }
Services !";
// Metode ini dipanggil jika requestnya HTML @GET @Produces(MediaType.TEXT_HTML) public String sayHtmlHello() { return " " + "
" + "Hello World REST Web Services !" + "" + "
" + "Hello World REST Web Services !" + "
" + " "; } } //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