Apa itu Rest API ?
REST API adalah antarmuka (interface) yang digunakan dua sistem komputer untuk
bertukar informasi secara aman melalui internet. Sebagian besar aplikasi bisnis harus
berkomunikasi dengan aplikasi internal dan pihak ketiga lainnya untuk melakukan
berbagai kegiatan. Misalnya, untuk pembayaran courses jointsacademy, system joints akan
membuat penagihan dengan mengirim request ke payment gateway dengan data user,
setelah itu system joints akan menerima kode bayar yang dikirim ke user joints via joints
apps, setelah user berhasil payment, system payment gateway akan mengirimkan data ke
system joints dengan data user joints telah berhasil melakukan pembayaran, kemudian
system joints otomatis mengupdate data pembayaran user.. RESTful API mendukung
pertukaran informasi ini karena mengikuti standar komunikasi perangkat lunak yang aman,
andal, dan efisien
Apa itu API ?
Application programming interface (API) menentukan aturan yang harus Anda ikuti untuk
berkomunikasi dengan sistem perangkat lunak lain. Pengembang memaparkan atau
membuat API sehingga aplikasi lain dapat berkomunikasi dengan aplikasi mereka secara
terprogram. Misalnya, aplikasi system payment gateway sudah mempunyai API untuk
membuat tagihan otomatis, maka system joints bisa mengakses API tersebut untuk
membuatkan tagihan untuk user joints melalui apps joints. Disini backend joints pun perlu
menyiapkan api untuk menerima request dari joints apps. Jadi prosesnya, joints apps
request ke API backend, backend(system joints) request ke API payment gateway.
Kita dapat menganggap API sebagai gerbang antara Client dan
Resources di server.
Client
Client adalah pengguna yang ingin mengakses informasi dari server. Client dapat
berupa orang atau sistem software yang menggunakan API. Misalnya, user joints
dengan menggunakan joints apps dapat mengakses data kursus dari sistem
backend joints. joints apps adalah client aplikasi.
Resources
Resources (sumber daya) adalah informasi yang diberikan oleh aplikasi
kepada client. Resources dapat berupa gambar, video, teks, angka, atau
informasi apa pun. Mesin yang memberikan resources ke client disebut
server. Server menggunakan API untuk berbagi resources dan
menyediakan layanan sambil menjaga keamanan, kontrol, dan autentikasi.
Selain itu, API membantu server menentukan client mana yang
mendapatkan akses ke internal resources tertentu.
Apa itu REST?
Representational State Transfer (REST) adalah arsitektur perangkat lunak yang
menerapkan persyaratan tentang cara kerja API. REST awalnya dibuat sebagai
pedoman untuk mengatur komunikasi pada jaringan yang kompleks seperti
internet. Kita dapat menggunakan arsitektur berbasis REST untuk mendukung
komunikasi berperforma tinggi dan andal dalam skala besar. Anda dapat
dengan mudah mengimplementasikan dan memodifikasinya, menghadirkan
visibilitas dan portabilitas lintas platform ke sistem API manapun.
Manfaat REST API?
Skalabilitas
Sistem yang mengimplementasikan REST API dapat berkembang secara efisien
karena REST mengoptimalkan interaksi klien-server. statelessness menghapus beban
server karena server tidak harus menyimpan informasi permintaan klien sebelumnya.
Caching yang dikelola dengan baik sebagian atau seluruhnya menghilangkan
beberapa interaksi klien-server. Semua fitur ini mendukung skalabilitas tanpa
menyebabkan hambatan komunikasi yang mengurangi kinerja
Fleksibilitas
Layanan REST mendukung pemisahan total klien-server. Mereka
menyederhanakan dan memisahkan berbagai komponen server sehingga setiap
bagian dapat berkembang secara mandiri. Perubahan platform atau teknologi
pada aplikasi server tidak mempengaruhi aplikasi client. Kemampuan untuk
melapisi fungsi aplikasi meningkatkan fleksibilitas lebih jauh lagi. Misalnya,
pengembang dapat membuat perubahan pada layer database tanpa menulis
ulang logic aplikasi
Cara kerja REST API?
Fungsi dasar dari REST API sama dengan browsing internet. Klien menghubungi server dengan
menggunakan API saat membutuhkan resource. Developer API menjelaskan bagaimana klien
harus menggunakan REST API dalam dokumentasi API aplikasi server. Ini adalah
langkah-langkah umum untuk setiap panggilan REST API:
- Klien mengirim request ke server. Klien mengikuti dokumentasi API untuk memformat request dengan cara yang dipahami server.
- Server mengotentikasi klien dan mengonfirmasi bahwa klien memiliki hak untuk membuat permintaan itu.
- Server menerima permintaan dan memprosesnya secara internal.
- Server mengembalikan respons ke klien. Respons berisi informasi yang memberi tahu klien apakah permintaan berhasil. Tanggapan juga mencakup informasi apa pun yang diminta klien.
Isi Permintaan REST API?
REST API memerlukan request untuk membawa komponen berikut:
Unique resource identifier
Server mengidentifikasi setiap resource dengan pengidentifikasi resource yang unik. Untuk
layanan REST, server biasanya melakukan identifikasi resource dengan menggunakan
Uniform Resource Locator (URL). URL menentukan jalur ke resource. URL mirip dengan
alamat situs web yang Anda masukkan ke browser untuk mengunjungi halaman web. URL
juga disebut sebagai request endpoint dan dengan jelas menentukan ke server mana yang
dibutuhkan klien.
Method
Developer sering mengimplementasikan REST API dengan menggunakan
Hypertext Transfer Protocol (HTTP). Method HTTP memberi tahu server apa
yang perlu dilakukannya terhadap resource. Berikut ini adalah empat method
HTTP secara umum :
- GET
Client menggunakan GET untuk mengakses resource yang terletak di URL
yang ditentukan di server. Mereka dapat meng-cache request GET dan
request parameter dalam request REST API untuk menginstruksikan server
memfilter data sebelum dikirim ke client.
- POST
Client menggunakan POST untuk mengirim data ke server. Mereka menyertakan
representasi data dengan permintaan. Mengirim permintaan POST yang sama
berkali-kali memiliki efek samping membuat resource yang sama berkali-kali.
- PUT
Client menggunakan PUT untuk memperbarui resource yang ada di server. Tidak
seperti POST, mengirimkan permintaan PUT yang sama beberapa kali dalam layanan
REST memberikan hasil yang sama.
- DELETE
Client menggunakan permintaan DELETE untuk menghapus resource. Permintaan
DELETE dapat mengubah status server. Namun, jika pengguna tidak memiliki
autentikasi yang sesuai, permintaan akan gagal.
- HTTP Header
Request headers adalah metadata yang dipertukarkan antara klien dan server. Misalnya, header
request menunjukkan format request dan response, memberikan informasi tentang status
request, dan sebagainya.
- Data
Request REST API mungkin menyertakan data untuk POST, PUT, dan method HTTP lainnya
agar berhasil.
- Parameter
Request REST API dapat menyertakan parameter yang memberi server lebih banyak detail
tentang apa yang perlu dilakukan. Berikut ini adalah beberapa jenis parameter yang ada dan
perbedaannya:
Path parameter yang menentukan detail URL.
Query parameter yang meminta lebih banyak informasi tentang sumber daya.
Cookie parameter yang mengautentikasi klien dengan cepat.
Metode autentikasi REST API?
Layanan REST harus mengautentikasi permintaan sebelum dapat mengirim respons. Otentikasi
adalah proses memverifikasi identitas. Misalnya, Anda dapat membuktikan identitas Anda dengan
menunjukkan KTP atau SIM. Demikian pula, klien layanan REST harus membuktikan identitas mereka
ke server untuk membangun kepercayaan.
HTTP authentication
HTTP menentukan beberapa skema autentikasi yang dapat Anda gunakan secara langsung saat
mengimplementasikan REST API. Berikut ini adalah dua dari skema ini:
- Basic authentication
Dalam basic authentication, klien mengirimkan nama pengguna dan kata sandi di
header permintaan. Itu mengencodekan dengan base64, yang merupakan teknik
pengkodean yang mengubah pasangan menjadi satu set 64 karakter untuk transmisi
yang aman.
- Bearer authentication
Bearer auth istilah ini mengacu pada proses pemberian kontrol akses ke pembawa
token. Token pembawa biasanya berupa string karakter terenkripsi yang dihasilkan
server sebagai tanggapan atas permintaan login. Klien mengirimkan token di header
permintaan untuk mengakses resource
Isi Response Server REST API ?
Prinsip REST mengharuskan respons server untuk memuat komponen utama berikut:
- Status code
Status code berisi kode status tiga digit yang mengomunikasikan keberhasilan atau kegagalan
permintaan. Misalnya, kode 2XX menunjukkan keberhasilan, tetapi kode 4XX dan 5XX menunjukkan
kesalahan. Kode 3XX menunjukkan pengalihan URL.
Berikut ini adalah beberapa status code yang umum:
200: Tanggapan sukses umum
201: Tanggapan keberhasilan metode POST
400: Permintaan salah yang tidak dapat diproses oleh server
404: Resource tidak ditemukan
- Response Body
Respon body berisi representasi resource. Server memilih format representasi yang
sesuai berdasarkan isi request header. Client dapat meminta informasi dalam format
JSON, yang menentukan bagaimana data ditulis dalam teks biasa. Misalnya, jika
client request name dan age seseorang bernama John, server mengembalikan
representasi JSON sebagai berikut:
‘{“name”:”John”, “age”:30}’
- Response Header
Respons juga berisi header atau metadata tentang response.
Mereka memberikan lebih banyak konteks tentang respons dan
menyertakan informasi seperti server, penyandian, tanggal, dan
tipe konten.
https://jagoflutter.com/wp-content/uploads/2023/10/CWB-Flutter-Json-Serialization-Rest-API.pdf