0% menganggap dokumen ini bermanfaat (0 suara)
480 tayangan21 halaman

Modul Restfull Api

Buku panduan ini membahas tentang RESTful API. RESTful API adalah implementasi dari API yang menggunakan arsitektur REST. RESTful API menggunakan metode HTTP, URL yang konsisten, verba HTTP, dan kode respons HTTP. RESTful API dapat digunakan untuk menghubungkan berbagai aplikasi dan memudahkan pertukaran data.

Diunggah oleh

zulian verry
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
480 tayangan21 halaman

Modul Restfull Api

Buku panduan ini membahas tentang RESTful API. RESTful API adalah implementasi dari API yang menggunakan arsitektur REST. RESTful API menggunakan metode HTTP, URL yang konsisten, verba HTTP, dan kode respons HTTP. RESTful API dapat digunakan untuk menghubungkan berbagai aplikasi dan memudahkan pertukaran data.

Diunggah oleh

zulian verry
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 21

BUKU PANDUAN RESTFull API

Komplek Ruko Graha Strategic


(GATIC)
Jl. Perumnas No. 83 Seturan, Catur
Tunggal Depok Sleman.
Telp. (0274) 4469037, 2921618,
2921648
www.technojogja.com

1
DAFTAR ISI

DAFTAR ISI...................................................................................................................................1
A. APPLICATION PROGRAMMING INTERFACE (API)................................................................1
B. RESTFULL API ...................................................................................................................... 1
1. URL Design......................................................................................................................1
2. HTTP Verbs......................................................................................................................1
a. GET .............................................................................................................................. 2
b. POST............................................................................................................................2
c. PUT..............................................................................................................................2
d. DELETE.........................................................................................................................2
3. HTTP Response Code ...................................................................................................... 2
4. Format Response............................................................................................................2
C. CARA REST APIs BEKERJA....................................................................................................3
D. JENIS JENIS API....................................................................................................................3
1. Berdasarkan Hak Akses.......................................................................................................3
a. Private API...................................................................................................................3
b. Partner API .................................................................................................................. 4
c. Public API.....................................................................................................................4
2. Berdasarkan Pengguna ....................................................................................................... 5
a. API Database ............................................................................................................... 5
b. API Sistem Operasi ...................................................................................................... 5
c. API Remote..................................................................................................................5
d. API Website.................................................................................................................6
E. DATA JSON..........................................................................................................................6
1. Key dan Value pada JSON...............................................................................................6
2. Jenis-Jenis Value pada JSON...........................................................................................7
3. Contoh Kasus Penggunaan JSON.....................................................................................7
a. Menghasilkan objek JSON dari data yang dibuat pengguna ....................................... 7
b. Mentransfer data antarsistem .................................................................................... 7
c. Konfigurasi data untuk aplikasi ................................................................................... 8
d. Menyederhanakan model data yang kompleks .......................................................... 8
4. Kelebihan Data JSON.......................................................................................................8
a. Kurang Verbose...........................................................................................................8
b. Lebih Cepat..................................................................................................................8
c. Mudah Dibaca ............................................................................................................. 8
d. Structure Data.............................................................................................................9

RESTFull API Hal : 1


F. MEMBUAT REST API DENGAN PHP DAN DBMS MYSQL......................................................9
1. Siapkan database............................................................................................................9
2. File koneksi php .............................................................................................................. 9
3. File phprestapi.php.......................................................................................................10
G. AKSES DATA REST SERVER DENGAN POSTMAN................................................................15
1. Insert Data menggunakan POST....................................................................................16
2. Rest API GET..................................................................................................................16
3. Get Pegawai By Id ......................................................................................................... 17
4. Update Data..................................................................................................................17
5. Delete Data...................................................................................................................18

A. APPLICATION PROGRAMMING INTERFACE (API)


API adalah singkatan dari Application Programming Interface. API sendiri merupakan
interface yang dapat menghubungkan satu aplikasi dengan aplikasi lainnya.
Dengan kata lain, peran API adalah sebagai perantara antar berbagai aplikasi
berbeda, baik dalam satu platform yang sama atau pun lintas platform.
Perumpamaan yang bisa digunakan untuk menjelaskan API adalah seorang pelayan
di restoran. Tugas pelayan tersebut adalah menghubungkan tamu restoran dengan
juru masak.
Jadi, tamu cukup memesan makanan sesuai daftar menu yang ada dan pelayan
memberitahukannya ke juru masak. Nantinya, pelayan akan kembali ke tamu tadi
dengan masakan yang sudah siap sesuai pesanan.
Kelebihan dari API yang lain adalah dapat digunakan untuk komunikasi dengan
berbagai bahasa pemrograman yang berbeda. Hal ini tentu cukup memudahkan bagi
developer. Bahkan, developer tidak perlu menyediakan semua data sendiri karena
cukup mengambil data yang dibutuhkan dari platform lain melalui API.

B. RESTFULL API
RESTful API / REST API merupakan penerapan dari API (Application Programming
Interface). Sedangkan REST (Representional State Transfer) adalah sebuah arsitektur
metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data
dimana metode ini sering diterapkan dalam pengembangan aplikasi. Dengan

RESTFull API Hal : 2


tujuannya untuk menjadikan sistem memiliki performa yang baik, cepat dan mudah
untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data.
RESTFUL API memiliki 4 komponen penting yaitu:

1. URL Design
RESTful API diakses menggunakan protokol HTTP. Penamaan dan struktur URL
yang konsisten akan menghasilkan API yang baik dan mudah untuk dimengerti
developer. URL API biasa disebut endpoint dalam pemanggilannya.

2. HTTP Verbs
Setiap request yang dilakukan terdapat metode yang dipakai agar server
mengerti apa yang sedang di request client:

a. GET
GET adalah metode HTTP Request yang paling mudah, metode ini digunakan
untuk membaca atau mendapatkan data dari sumber.

b. POST
POST adalah metode HTTP Request yang digunakan untuk membuat data
baru dengan menyisipkan data dalam body saat request dilakukan.

c. PUT
PUT adalah metode HTTP Request yang biasanya digunakan untuk
melakukan update data resource.

d. DELETE
DELETE adalah metode HTTP Request yang digunakan untuk menghapus
suatu data pada resource.

3. HTTP Response Code


HTTP Response Code adalah kode standarisasi dalam menginformasikan
hasil request kepada client. Secara umum terdapat 3 kelompok yang biasa kita
jumpai pada RESTful API yaitu :

2XX : adalah response code yang menampilkan bahwa request berhasil.

RESTFull API Hal : 3


4XX : adalah response code yang menampilkan bahwa request mengalami
kesalahan pada sisi client.
5XX : adalah response code yang menampilkan bahwa request mengalami
kesalahan pada sisi server.

4. Format Response
Setiap request yang dilakukan client akan menerima data response dari
server, response tersebut biasanya berupa data XML ataupun JSON. Setelah
mendapatkan data response tersebut barulah client bisa menggunakannya
dengan cara memparsing data tersebut dan diolah sesuai kebutuhan.

C. CARA REST APIs BEKERJA


API secara eksplisit memanfaatkan metodologi HTTP yang ditentukan oleh protokol RFC
2616. Permintaan ke API bisa menggunakan GET untuk mengambil sumber daya, PUT
untuk mengubah status atau memperbarui sumber daya, yang dapat berupa objek, file,
atau blok, POST untuk membuat sumber daya itu, dan DELETE untuk menghapusnya.
Permintaan http oleh client menggunakan beberapa fitur yang kemudian semuanya
disebut restful. Pertama, GET agar bisa mengambil sumber daya, lalu PUT untukk bisa
memperbarui sumber daya atau mengubah situs, kemudian POST untuk bisa membuat
sumber daya yang dapat berupa file, objek, atau blok, dan terakhir DELETE untuk
menghapus.
Keuntungan adanya restful ini memudahkan. Jadi, Anda tidak harus repot memasang
apapun di sisi klien seperti framework atau SDK. Yang perlu Anda lakukan hanya membuat
request HTTP ke layanan end point, kemudian sisanya biarkan server yang melakukan
pelayanannya.
Contohnya menggunakan Google API untuk login. Jadi Anda tidak memerlukan
waktu yang banyak untu membuat sistem login, cukup memangl API, pengguna hanya
butuh login dan Anda bisa mendapatkan data bisa berupa nama pengguna atau berupa
email. Tentu saja dengan syarat pengguna sudah memberikan izin untuk memberikan
data mereka.

RESTFull API Hal : 4


D. JENIS JENIS API
Jenis jenis API dapat di kelompokkan sebagai berikut :

1. Berdasarkan Hak Akses


Berdasarkan hak aksesnya, API memiliki sifat partner, private dan juga
public.

a. Private API
Private API adalah jenis API yang dibuat agar bisa meningkatkan solusi
dan juga layanan dalam suatu organisasi.
Pihak developer dapat menggunakan fitur ini untuk melakukan
integrasi sistem ataupun software IT milik perusahaan itu sendiri,
tujuannya agar bisa membuat sistem baru atau software yang
berkaitan menggunakan sistem yang sudah tersedia.

b. Partner API
Partner API bisa diberikan secara terbuka namun hanya akan dibagikan
secara terbatas misalkan kepada mitra bisnis yang sudah melakukan
tanda tangan perjanjian dengan pihak publisher.
Terdapat aturan tertentu di dalamnya, yakni hanya user yang sudah
memiliki izin saja yang mampu menggunakan interface tersebut. Kasus
yang umum ditemukan dalam jenis ini adalah integrasi antar dua pihak.
Perusahaan yang memberikan akses data pada mitranya akan
memperoleh keuntungan tambahan.g cukup dan mampu
mempertahankan identitas utama perusahaan di aplikasi tersebut.

c. Public API
Public API yang lebih dikenal dengan tersedianya API untuk developer
pihak ketiga. API public ini terbagi menjadi dua jenis, yakni open
source dan juga komersial. Open API memungkinkan seluruh fitur di
dalamnya bersifat publik dan mampu digunakan tanpa adanya syarat
dan juga ketentuan yang mampu membatasi.

RESTFull API Hal : 5


Contoh sederhananya, Anda bisa membuat aplikasi yang
memanfaatkan API tanpa harus meminta persetujuan dari
pihak supplier atau membayar biaya lisensi tersebut.
API dan seluruh dokumentasi yang ada di dalamnya harus tersedia
secara terbuka dan bisa digunakan dengan bebas agar bisa membuat
dan juga menguji aplikasi tersebut.
Sedangkan API komersial, mengharuskan setiap penggunanya untuk
membayar biaya langganan ataupun menggunakannya secara pay as
you go. Cara yang dilakukan oleh para publisher adalah dengan
menawarkan uji coba secara gratis, sehingga para penggunanya bisa
melakukan evaluasi API sebelum melakukan pembelian ataupun
berlangganan.

2. Berdasarkan Pengguna

a. API Database
API database mampu memungkinkan adanya komunikasi antar dua
aplikasi dan juga sistem manajemen database. Pihak developer akan
melakukan pekerjaannya dengan basis data dan menulis query untuk
bisa mengakses data, merubah tabel, dan berbagai hal lainnya.
Saat ini, API database drupal 7 mampu membantu setiap penggunanya
dalam menulis query untuk basis data yang beragam, baik itu dalam
kepemilikan ataupun sumber yang terbuka, seperti MySQL, Oracle,
MongoDB, MSSQL, dan CouchDB.

b. API Sistem Operasi


Jenis fitur ini akan menentukan bagaimana suatu aplikasi
memanfaatkan resources dan juga sistem operasi. API yang ada pada
tingkat sistem operasi ini mampu membantu aplikasi dalam melakukan
komunikasi satu sama lain dengan menggunakan layer dasar dan juga
mengikuti protokol serta spesifikasi khusus.
Setiap sistem operasi mempunyai kumpulan API nya tersendiri, seperti

RESTFull API Hal : 6


Windows API dan juga Linux API. Untuk Apple, mereka menyediakan
referensi API untuk Mac OS dan iOS di dalam dokumentasi developer-
nya.
Fitur yang digunakan untuk membuat aplikasi pada sistem operasi Mac
OS disertakan dalam sesuatu yang disebut dengan developer
tools Cocoa.

c. API Remote
API remote mampu menentukan standar interaksi untuk aplikasi yang
berjalan pada mesin yang berbeda. Itu artinya, satu produk software
mampu melakukan akses resources yang berada di luar device.
Hal ini dikarenakan dua aplikasi remote terhubung dengan jaringan
komunikasi internet, sehingga sebagian besar API remote dicatat
dengan berdasarkan standar website.

d. API Website
Fitur ini adalah jenis yang paling mudah untuk ditemui. API website
akan menyediakan resources yang mampu dibaca oleh mesin dan
mengirim fungsionalitas pada sistem berbasis website yang mampu
mewakili server dan juga klien.
Fitur ini akan mengirimkan permintaan dari aplikasi website dan
respon dari server dengan menggunakan Hypertext Transfer
Protocol (HTTP). Pihak developer bisa menggunakan API website untuk
meningkatkan fungsionalitas aplikasi ataupun website tersebut.

E. DATA JSON
JSON merupakan singkatan dari JavaScript Object Notation, yaitu open standard
format yang ringan dan berbasis teks, serta dirancang secara eksplisit untuk
pertukaran data yang dapat dibaca manusia. Ini adalah format data yang tidak
bergantung pada bahasa. JSON mendukung hampir semua jenis

RESTFull API Hal : 7


bahasa, framework, dan library.
Data JSON, data direpresentasikan dalam pasangan nilai kunci, dan curly
braces yang menahan objek, di mana titik dua diikuti setelah setiap nama. Koma
digunakan untuk memisahkan pasangan nilai kunci. Tanda kurung siku digunakan
untuk menyimpan array, di mana setiap nilai dipisahkan dengan koma.

1. Key dan Value pada JSON


Dua bagian utama yang membentuk JSON adalah kunci (key) dan nilai (value).
Bersama-sama, mereka membuat pasangan key/value.
 Key: Key selalu berupa string yang diapit tanda kutip;
 Value: Value dapat berupa string, angka, ekspresi boolean, array, atau
objek;
Pasangan nilai kunci: Pasangan nilai kunci mengikuti sintaks tertentu, dengan
kunci diikuti oleh titik dua diikuti dengan nilainya. Pasangan nilai kunci yang
dipisahkan dengan koma.
berikut contoh JSON dan identifikasi setiap bagian dari kode.
"nama" : "Sugeng"

Contoh ini adalah pasangan nilai kunci. Kuncinya adalah "nama" dan nilainya
adalah "Sugeng".

2. Jenis-Jenis Value pada JSON


 Array: Array nilai asosiatif.
 Boolean: Benar atau salah.
 Number: Sebuah bilangan bulat.
 Object: Array asosiatif pasangan nilai kunci.
 String: Beberapa karakter teks biasa yang biasanya membentuk sebuah
kata.

3. Contoh Kasus Penggunaan JSON

a. Menghasilkan objek JSON dari data yang dibuat pengguna

RESTFull API Hal : 8


JSON sangat cocok untuk menyimpan data sementara. Misalnya, data
sementara dapat berupa data yang dibuat pengguna, seperti formulir yang
dikirimkan di situs web. JSON juga dapat digunakan sebagai format data
bahasa pemrograman apa saja untuk menyediakan interoperabilitas
tingkat tinggi.

b. Mentransfer data antarsistem


Database situs web memiliki alamat surat pelanggan, tetapi alamat
tersebut perlu diverifikasi melalui API untuk memastikannya valid. Kirim
data alamat dalam format JSON ke API layanan validasi alamat.

c. Konfigurasi data untuk aplikasi


Saat mengembangkan aplikasi, setiap aplikasi memerlukan kredensial
untuk terhubung ke database serta log file path. Kredensial dan file
path dapat ditentukan dalam file JSON agar dapat tersedia dan mudah
dibaca.

d. Menyederhanakan model data yang kompleks


JSON menyederhanakan dokumen kompleks hingga ke komponen yang
telah diidentifikasi sebagai sesuatu yang bermakna dengan mengubah
proses ekstraksi data menjadi file JSON yang dapat diprediksi dan dibaca
manusia.

4. Kelebihan Data JSON


Karena JSON adalah format pertukaran data bahasa yang mudah digunakan
dan ringan dibandingkan dengan opsi lainnya, JSON juga dapat digunakan
untuk integrasi API. Berikut ini adalah kelebihan dari JSON:

a. Kurang Verbose

RESTFull API Hal : 9


Berbeda dengan XML, JSON mengikuti gaya ringkas untuk meningkatkan
keterbacaan penggunanya. Saat bekerja dengan sistem yang lebih
kompleks, JSON cenderung membuat peningkatan substansial;

b. Lebih Cepat
Proses penguraian JSON lebih cepat daripada XML karena pustaka
manipulasi DOM di XML memerlukan memori ekstra untuk menangani file
XML besar. Namun, JSON membutuhkan lebih sedikit data yang pada
akhirnya menghasilkan pengurangan biaya dan peningkatan kecepatan
penguraian;

c. Mudah Dibaca
Struktur JSON mudah dibaca dan lugas. Terlepas dari bahasa pemrograman
yang Anda gunakan, Anda dapat dengan mudah memetakan objek domain;

d. Structure Data
Dalam JSON, struktur data peta digunakan, sedangkan XML mengikuti tree
structure. Pasangan nilai kunci mungkin akan membatasi tugas, tetapi
memfasilitasi model prediktif dan mudah dimengerti.

F. MEMBUAT REST API DENGAN PHP DAN DBMS MYSQL


Untuk membuat REST API ikuti langkah-langkah sebagai berikut:

1. Siapkan database
Buatah database MysQL di phpmyadmin dan tambahkan tabel pegawai,
dengan structure sebagai berikut.

CREATE TABLE `pegawai` (


`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` enum(‘Laki-laki’,’Perempuan’) NOT NULL,

RESTFull API Hal : 10


`alamat` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

2. File koneksi php


Seperti halnya membuat crud dengan php yang membutuhkan file koneksi.
Membuat file php rest api juga membutuhkan koneksi.

<?php
$hostname = "localhost";

$database = "lat_simpeg";

$username = "root";

$password = "";

$connect = mysqli_connect($hostname, $username, $password, $database);

// script cek koneksi

if (!$connect) {

die("Koneksi Tidak Berhasil: " . mysqli_connect_error());

3. File phprestapi.php

<?php

require_once "koneksi.php";

if(function_exists($_GET['function'])) {

$_GET['function']();

RESTFull API Hal : 11


}

function get_pegawai()

global $connect;

$query = $connect->query("SELECT * FROM pegawai");

while($row=mysqli_fetch_object($query))

$data[] =$row;

$response=array(

'status' => 1,

'message' =>'Success',

'data' => $data

);

header('Content-Type: application/json');

echo json_encode($response);

function get_pegawai_id()

global $connect;

if (!empty($_GET["id"])) {

$id = $_GET["id"];

$query ="SELECT * FROM pegawai WHERE id= $id";

$result = $connect->query($query);

while($row = mysqli_fetch_object($result))

RESTFull API Hal : 12


{

$data[] = $row;

if($data)

$response = array(

'status' => 1,

'message' =>'Success',

'data' => $data

);

}else {

$response=array(

'status' => 0,

'message' =>'No Data Found'

);

header('Content-Type: application/json');

echo json_encode($response);

function insert_pegawai()

global $connect;

$check = array('id' => '', 'nama' => '', 'jenis_kelamin' => '', 'alamat' => '');

$check_match = count(array_intersect_key($_POST, $check));

if($check_match == count($check)){

$result = mysqli_query($connect, "INSERT INTO pegawai SET

RESTFull API Hal : 13


id = '$_POST[id]',

nama = '$_POST[nama]',

jenis_kelamin = '$_POST[jenis_kelamin]',

alamat = '$_POST[alamat]'");

if($result)

$response=array(

'status' => 1,

'message' =>'Insert Success'

);

else

$response=array(

'status' => 0,

'message' =>'Insert Failed.'

);

}else{

$response=array(

'status' => 0,

'message' =>'Wrong Parameter'

);

header('Content-Type: application/json');

echo json_encode($response);

RESTFull API Hal : 14


}

function update_pegawai()

global $connect;

if (!empty($_GET["id"])) {

$id = $_GET["id"];

$check = array('nama' => '', 'jenis_kelamin' => '', 'alamat' => '');

$check_match = count(array_intersect_key($_POST, $check));

if($check_match == count($check)){

$result = mysqli_query($connect, "UPDATE pegawai SET

nama = '$_POST[nama]',

jenis_kelamin = '$_POST[jenis_kelamin]',

alamat = '$_POST[alamat]' WHERE id = $id");

if($result)

$response=array(

'status' => 1,

'message' =>'Update Success'

);

else

$response=array(

'status' => 0,

'message' =>'Update Failed'

RESTFull API Hal : 15


);

}else{

$response=array(

'status' => 0,

'message' =>'Wrong Parameter',

'data'=> $id

);

header('Content-Type: application/json');

echo json_encode($response);

function delete_pegawai()

global $connect;

$id = $_GET['id'];

$query = "DELETE FROM pegawai WHERE id=".$id;

if(mysqli_query($connect, $query))

$response=array(

'status' => 1,

'message' =>'Delete Success'

);

else

RESTFull API Hal : 16


$response=array(

'status' => 0,

'message' =>'Delete Fail.'

);

header('Content-Type: application/json');

echo json_encode($response);

?>

G. AKSES DATA REST SERVER DENGAN POSTMAN


Dengan menggunakan ke 2 file di atas kita telah membuat REST API dan untuk
menggunakannya rest api dipanggil menggunakan metode GET dan POST. Untuk
dapat mengakses file server disini kita jadikan postman sebagai client yang akan
mengakses data server.

1. Insert Data menggunakan POST


Alamat URL yang digunakan adalah :
http://localhost/rest_server/phprestapi.php?function=insert_pegawai

RESTFull API Hal : 17


2. Rest API GET
Untuk memanggil semua data pegawai gunakan metode GET dengan url sebagai
berikut :http://localhost/rest_server/phprestapi.php?function=get_pega
wai

3. Get Pegawai By Id
http://localhost/rest_server/phprestapi.php?function=get_pegawai_id
&id=3

RESTFull API Hal : 18


4. Update Data
http://localhost/rest_server/phprestapi.php?function=update_pegawai
&id=4

5. Delete Data
http://localhost/rest_server/phprestapi.php?function=delete_pegawai
&id=6

RESTFull API Hal : 19


RESTFull API Hal : 20

Anda mungkin juga menyukai