Pembuatan RESTful Web Service “Hello World” dengan

advertisement
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
Download