Flutter REST API

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

Subscribe

Related articles

Flutter VS React Native, Mana Yang Lebih Baik untuk Proyek Anda?

Saat membuat aplikasi seluler menjadi lebih populer, bisnis mencari...

Menyederhanakan Flutter ORM

Memahami ORM dan Pentingnya Apa itu ORM? Pemetaan Relasional Objek (ORM)...

Database lokal terbaik untuk Flutter

Data aplikasi web apa pun adalah komponen terpentingnya. Aplikasi...

Flutter Json Serialization

Apa itu JSON ? JSON (JavaScript Object Notation) adalah format...

Cara Mencapai Efisiensi Kode Optimal dengan Widget Khusus Flutter

Pengoptimalan kode adalah aspek penting dalam pengembangan aplikasi seluler....

LEAVE A REPLY

Please enter your comment!
Please enter your name here