![Page 2: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/2.jpg)
Membangun REST API dengan PHPSekedar Menyapa ☺
![Page 3: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/3.jpg)
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
![Page 4: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/4.jpg)
Halo.php: Aplikasi Web Biasa, Belum API
• Jika id bernilai 5 tampilkan... Jika tidak... Dan jika tidak ada id-nya
4
![Page 5: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/5.jpg)
Mengakses halo.php
5
![Page 6: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/6.jpg)
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.
6
Database
API Provider
HTTP Server
API Customer
HTTP Server
User: Web Browser
Halo.php.htaccess
haloclient.php
![Page 7: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/7.jpg)
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
![Page 8: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/8.jpg)
User Mengakses haloclient.php
• http://localhost/api/haloclient.php
8
Sudah Sesuai Kaidah Web Service!
Tetapi Belum RESTful
![Page 9: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/9.jpg)
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
![Page 10: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/10.jpg)
Contoh Akses dari Pengguna
10
![Page 11: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/11.jpg)
Membangun REST API dengan JavaHello World!
![Page 12: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/12.jpg)
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
![Page 13: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/13.jpg)
Membuat REST API
• Dibuat di sisi Provider
• Langkah-langkahnya:1. Membuat Proyek Web Dinamis
2. Membuat Paket (Package)
3. Menyalin file .jar dari bundle Jersey
4. Mengkonfigurasi web.xml
5. Menulis kode program API
6. Menjalankan API di Container
13
Akan diperlihatkan langkah-langkah
pembuatan RESTful Web Service Simpel di Eclipse
Yang diperlukan:• JDK 1.8 atau terkenal dengan Java 8• EclipseEE : IDE pengembangan aplikasi Enterprise• Pustaka Jersey (download bundle .zip)• Web Server atau Container Tomcat 8 atau 8.5
![Page 14: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/14.jpg)
1. Membuat Proyek Web DinamisFile > New > Dynamic Web Project
14
![Page 15: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/15.jpg)
2. Membuat Paket: id.ac.trunojoyo.husniKlik Kanan Nama Proyek > New > Package
15
Struktur direktori setelah pembuatan
Package
![Page 16: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/16.jpg)
16
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.
![Page 17: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/17.jpg)
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
![Page 18: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/18.jpg)
5. Menulis Kode REST API: Kelas HelloWorldKlik Kanan Nama Proyek > New > Classpackage 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
![Page 19: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/19.jpg)
5. Menulis Kode REST API: Kelas HelloWorldKlik 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
![Page 20: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/20.jpg)
6. Menjalankan REST APIKerjasama dengan Container Tomcat 8.5
• Klik kanan nama proyek > Run As > Run On Server
20
Klik Next
Klik Finish
![Page 21: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/21.jpg)
Hasil Pengujian:
21
Langsung di Eclipse
Via Google Chrome!
String dalam format plain text
String dalam format HTML
![Page 22: Pembuatan RESTful Web Service “Hello World” dengan PHP & … · Halo.php diakses oleh haloclient.php •Pengguna (via Web Browser atau mobile apps.) tidak mengakses API ... •Belum](https://reader034.vdokumen.com/reader034/viewer/2022052306/5c63b36509d3f208138b9994/html5/thumbnails/22.jpg)
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