REST API dan
RESTful API
Bagi seorang programmer pasti sudah
tidak asing lagi dalam mendengar
nama REST API. API (Application
Programming Interface) adalah suatu
kumpulan subroutine, protokol
komunikasi, tools, dan fungsi untuk
membuat sebuah perangkat lunak.
Mudahnya, API adalah fungsi yang
dapat dipanggil atau dijalankan oleh
program lain sehingga dapat
menghubungkan antara server dengan
perangkat yang digunakan oleh user.
Jadi, untuk mendapatkan suatu
database dari suatu perusahaan
diperlukan API untuk mengambil data
tersebut hingga sampai kepada user.
Lalu, bagaimana dengan REST API?
Penerapannya kepada suatu program?
Dan bagaimana cara membuat request
melalui HTTP Protocol? Yuk, simak
artikel berikut!
A. Pembahasan REST API
Sebelumnya sudah dijelaskan tentang
API, lalu bagaimana dengan REST API?
REST API dapat dikatakan sebagai salah
satu bentuk gaya arsitektural
perangkat lunak yang didalamnya
mendefinisikan beberapa aturan untuk
membuat web service. REST API berisi
aturan atau batasan yang dapat
membatasi programmer untuk
mengakses atau melakukan tindakantindakan tertentu pada sebuah
database. Jika API adalah penghubung,
maka REST yang membuat aturan
sesuai keinginan programmer dalam
merancang web service. Mudahnya,
terdapat request dan response pada
data yang dikirimkan ataupun yang
diterima. Data yang digunakan dalam
REST API umumnya berupa JSON.
Format Respon Populer Dari REST API
yaitu XML dan JSON.
Sifat-sifat REST API (Representational
State Transfer):
- Gaya perancangan
- Stateless
- Dibuat oleh Roy Fielding
- Protokolnya selalu
menggunakan HTTP
- Memungkinkan interaksi antar
mesin (mesin-mesin) dengan
perilaku yang berbeda.
Sebagai contoh, ilustrasinya adalah
pada saat user membuka browser dan
mencari suatu site seperti
youtube.com maka ini artinya user
mengirimkan request dengan metode
GET ke server youtube sehingga server
menerima respon berupa HTML. Jika
site dari youtube sudah terbuka maka
terdapat response yang dikirimkan
oleh server yang berasal dari API.
Kasus kedua adalah ketika ada form
username dan password dalam
membuka suatu site maka artinya user
mengirimkan request dalam bentuk
metode POST sehingga nanti server
akan memberi response dan
menyajikan data yang diinginkan oleh
user.
Berikut adalah cara membuat ilustrasi
REST API:
- User mengirimkan request
dengan data yang diinginkan.
- User mengirimkan request dan
mengubah data menjadi JSON
ke REST Server.
- REST Server menerima
response berupa JSON beserta
kode status dan
mengirimkannya ke server
(kode status : 200 success, 404
not found, 500 server eror,
dan masih banyak lagi. Kode status digunakan untuk
mengetahui apakah request
yang dikirimkan oleh user
sudah benar atau belum).
- Server menerima dari REST
Server dan mengubah respon
menjadi HTML.
Perangkat yag digunakan oleh user
disebut dengan client sehingga pada
saat client bertemu dengan server
maka dapat disebut sebagai REST
Client. Rest Client dapat berupa
smartphone, cloud, dan smart home
.
Metode HTTP dalam arsitektur REST
REST memiliki standarisasi dalam
pemakaian, yaitu URL dan HTTP
method. HTTP method digunakan
untuk mengetahui kegunaan dari URL
yang diakses, sehingga mempermudah
dalam penulisan URL.
Berikut adalah jenis HTTP method yang
sering digunakan :
- GET, digunakan untuk
membaca sebuah record atau
daftar record.
- POST, digunakan untuk
menambah sebuah record.
- PUT, digunakan untuk
mengubah semua field dalam
sebuah record.
- PATCH, digunakan untuk
mengubah beberapa field
dalam sebuah record.
- DELETE, digunakan untuk
menghapus sebuah sebuah
record.
B. Pembahasan RESTful API
RESTful API didasarkan pada teknologi
state transfer (representational state
transfer / REST), gaya arsitektur dan
pendekatan komunikasi yang sering
digunakan dalam pengembangan
layanan web.
Meskipun REST dapat digunakan di
hampir semua protokol, tapi biasanya
memanfaatkan HTTP ketika digunakan
untuk Web API. Hal ini membantu
pengembang web tidak perlu
menginstal library atau perangkat
lunak tambahan untuk memanfaatkan
desain REST API. Design REST API
pertama kali diperkenalkan oleh Dr.
Roy Fielding dalam disertasi doktor
tahun 2000
-nya. REST API terkenal
karena fleksibilitasnya yang luar biasa.
Data tidak terikat dengan metode dan
sumber daya, REST memiliki
kemampuan untuk menangani
beberapa jenis panggilan,
mengembalikan format data yang
berbeda dan bahkan mengubah secara
struktural tentunya dengan
implementasi yang benar.
REST yang digunakan oleh browser
dapat dianggap sebagai bahasa
internet. Dengan meningkatnya
penggunaan cloud, API muncul untuk
mengekspos layanan web. REST adalah
pilihan logis untuk membangun API
yang memungkinkan pengguna untuk
terhubung dan berinteraksi dengan
layanan cloud. API telah banyak
digunakan oleh situs
-situs seperti
Amazon, Google, LinkedIn dan Twitter.
Keuntungan terbesar dari Restful API
adalah Anda tidak perlu memasang
apa pun di sisi klien. SDK atau
framework tidak diperlukan. Yang
harus Anda lakukan adalah membuat
permintaan HTTP sederhana ke
layanan end point dari API target,
biarkan server melakukan layanannya
untuk Anda dan dapatkan hasilnya
kembali. Sangat mudah dilakukan.
Contoh paling sederhana adalah
Google API untuk login. Anda tidak
perlu menghabiskan banyak waktu
hanya untuk membuat sistem login
untuk member di website. Anda hanya
perlu memanggil API dari google,
pengguna hanya perlu login ke Google kemudian Anda akan mendapatkan
data semisal alamat email / nama dari
pengguna tersebut. Tentunya jika
pengguna telah memberikan izin
mengunakan data mereka.
Cara kerja RESTful API
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.
Komponen dari HTTP Request :
- Verb, HTTP method yang
digunakan misalnya GET, POST,
DELETE, PUT dll.
- Uniform Resource Identifier
(URI) untuk
mengidentifikasikan lokasi
resource pada server.
- HTTP Version, menunjukkan
versi dari HTTP yang
digunakan, contoh HTTP v1.1.
- Request Header, berisi
metadata untuk HTTP Request.
Contoh, type client/browser,
format yang didukung oleh
client, format dari body pesan,
seting cache dll.
- Request Body, konten dari
data.
Komponen dari HTTP Response :
- Status/Response Code,
mengindikasikan status server
terhadap resource yang
direquest. misal : 404, artinya
resource tidak ditemukan dan
200 response OK.
- HTTP Version, menunjukkan
versi dari HTTP yang
digunakan, contoh HTTP v1.1.
- Response Header, berisi
metadata untuk HTTP
Response. Contoh, type server,
panjang content, tipe content,
waktu response, dll.
- Response Body, konten dari
data yang diberikan.
Comments
Post a Comment