+62 896 6423 0232 | info@idmetafora.com
Software ERP Indonesia IDMETAFORA


Rest API | Pengertian, Sifat, Prinsip, Keunggulan dan Kekurangan

18 November, 2022   |   Ningsih

Rest API | Pengertian, Sifat, Prinsip, Keunggulan dan Kekurangan

Ketika Anda ingin memahami dokumentasi API dan menggunakannya secara efektif, hal pertama yang perlu Anda pahami adalah REST. Ada kemungkinan besar Anda sudah menemukan istilah ini jika Anda berpikir untuk mendapatkan data dari sumber lain pada internet, seperti Twitter atau Github. Namun, apa itu REST? Apa manfaatnya bagi Anda? Bagaimana Anda menggunakannya? Simak penjelasan lengkapnya dalam artikel berikut.


Pengertian REST

REST merupakan kependekan dari Representational State Transfer. REST adalah gaya arsitektur untuk menyediakan standar antara sistem komputer di web, sehingga dapat memudahkan sistem untuk berkomunikasi satu sama lain.

Sistem yang sesuai dengan REST, selalu disebut sistem RESTful. RESTful adalah sebutan untuk web services yang menerapkan arsitektur REST. Ia dapat disebut juga sebagai API (application program interface) karena digunakan untuk menjembatani antara sistem yang berbeda (client dan server).dicirikan oleh sifatnya yang stateless dan bisa memisahkan masalah klien dan server. Stateless artinya server tak harus mengetahui apa pun tentang status klien dan sebaliknya. Sehingga, baik server maupun klien bisa memahami pesan apa pun yang diterima, bahkan tanpa melihat pesan sebelumnya.

Pada gaya arsitektur REST, implementasi klien dan implementasi server bisa dilakukan secara independen tanpa saling mengetahui satu sama lain. Ini berarti kode di sisi klien bisa diubah kapan saja tanpa memengaruhi pengoperasian server, dan kode di sisi server bisa diubah tanpa memengaruhi operasi klien. REST menggunakan serangkaian metode permintaan standar termasuk GET, POST, PUT, DELETE, serta kemampuan HTTP lain yang ada.

REST terdiri dari empat hal yakni sebagai berikut:

- Sumber daya yang direferensikan oleh pengenal global seperti URI.

- Representasi sumber daya, yakni dokumen yang berisi informasi sumber daya yang dibutuhkan.

- Komponen yang berkomunikasi antara satu sama lain antara klien dan server.

- Interface standar yang mengidentifikasi sumber daya, memungkinkan manipulasi sumber daya lewat representasi, termasuk pesan deskriptif mandiri yang menjelaskan cara memproses permintaan serta respons, dan hypermedia yang diidentifikasi dengan dinamis.

Terdapat istilah REST API, apa itu?

Sebagian dari kalian mungkin sudah pernah mendengar Representational State Transfer dengan sebutan RESTful API. RESTful adalah sebutan untuk web services yang menerapkan arsitektur REST. Ia bisa disebut juga sebagai API (application program interface) karena digunakan untuk menjembatani antara sistem yang berbeda (client dan server).
 
API atau Application Program Interface sendiri adalah sebuah antarmuka yang menjadi perantara antara sistem aplikasi yang berbeda. API tidak hanya dalam bentuk Web Service, bisa juga berupa SDK (Software Development Kit) ataupun lainnya.


Berikut beberapa sifat pada REST API:

- Client-Server

adalah hal yang paling mendasar saat membangun REST API. Server harus bisa merespon permintaan yang dilakukan oleh client, baik itu saat berhasil ataupun gagal. Komunikasi client dan server dilakukan lewat protokol HTTP.
 
- Stateless

REST API tak boleh menyimpan keadaan (state) apapun terkait client. semua state harus tetap disimpan pada client. Artinya, tak ada session di REST API. Permintaan yang dilakukan client perlu adanya informasi yang jelas. Tidak bisa berharap RESTful API akan menyimpan informasi dari permintaan sebelumnya untuk digunakan pada permintaan selanjutnya.
 
- Cacheable

Supaya dapat merespon permintaan dengan cepat, sebaiknya REST API menerapkan prinsip cache. Sehingga pada setiap permintaan tidak harus mengambil dari database.
 
- Layered

Saat REST API server memiliki arsitektur yang kompleks, client seharusnya tak harus tahu bagaimana server melayaninya.
 

Prinsip Dasar REST

Menurut REST API, ada enam prinsip dasar dari REST yakni:

1. Client-server

Prinsip dasar REST yang pertama ialah client-server, yakni dengan memisahkan masalah user interface dari masalah penyimpanan data.
Dengan memisahkan masalah ini, Anda dapat meningkatkan portabilitas antarmuka pengguna di berbagai platform serta dapat meningkatkan skalabilitas dengan menyederhanakan komponen server.

2. Stateless

Prinsip dasar REST yang kedua ialah stateless. Prinsip ini memudahkan akses informasi dari klien ke server maupun sebaliknya. Setiap permintaan dari klien ke server harus berisi segala informasi yang diperlukan guna memahami permintaan tersebut, dan tak dapat memanfaatkan konteks yang telah disimpan di server.
Maka dengan itu, status sesi disimpan sepenuhnya pada klien.

3. Cacheable

Batasan cache mengharuskan data dalam respons pada permintaan diberi label secara implisit atau eksplisit sebagai bisa disimpan dalam cache atau tidak bisa disimpan dalam cache. Jika respons tersebut bisa disimpan dalam cachecache klien diberikan hak guna memakai kembali data respons tersebut untuk permintaan yang setara nanti.

4. Interface yang seragam

Interface yang seragam dibuat dengan menerapkan prinsip umum rekayasa perangkat lunak ke antarmuka komponen, arsitektur sistem dengan keseluruhan disederhanakan dan pada visibilitas interaksi ditingkatkan.
Untuk mendapatkan interface yang seragam, beberapa batasan arsitektur diperlukan guna memandu perilaku komponen.

REST didefinisikan oleh empat batasan interface.

- identifikasi sumber daya

- manipulasi sumber daya melalui representasi

- pesan deskriptif diri

- hypermedia sebagai mesin status aplikasi


5. Sistem yang berlapis

Prinsip dasar REST selanjutnya adalah sistem yang berlapis. Gaya sistem berlapis memungkinkan arsitektur untuk terdiri oleh lapisan hierarki dengan membatasi perilaku komponen sedemikian rupa.
Sehingga, pada setiap komponen tidak bisa “melihat” di luar lapisan langsung yang berinteraksi dengan mereka.

6. Code on demand yang opsional

REST memungkinkan fungsionalitas klien diperluas dengan mengunduh serta menjalankan kode dalam bentuk applet atau skrip. Ini menyederhanakan klien dengan dapat mengurangi jumlah fitur yang diperlukan untuk diterapkan sebelumnya.


Keunggulan Menggunakan REST

1. Pemisahan antara klien dan server

Protokol REST benar-benar memisahkan interface pengguna dari server dan penyimpanan data. Ini mempunyai beberapa keuntungan saat melakukan pengembangan. Misalnya, meningkatkan portabilitas antarmuka pada jenis platform lain, meningkatkan skalabilitas proyek serta dapat memungkinkan berbagai komponen pengembangan dikembangkan secara independen.

2. Visibilitas, keandalan, dan skalabilitas

Pemisahan antara klien serta server mempunyai satu keuntungan nyata, yakni bahwa setiap tim pengembangan bisa menskalakan produk tanpa terlalu banyak masalah. Mereka bisa bermigrasi ke server lain atau membuat semua jenis perubahan dalam database, yang terpenting data dari setiap permintaan dikirim dengan benar.
Pemisahan tersebut mempermudah untuk mempunyai bagian depan dan belakang di server yang berbeda, dan ini membuat aplikasi agar lebih fleksibel untuk digunakan.

3. REST selalu independen dari jenis platform atau bahasa pemograman

REST terus menyesuaikan dengan jenis sintaks atau platform yang digunakan, yang memberikan banyak kebebasan saat mengubah atau menguji lingkungan baru pada pengembangan. Dengan menggunakan REST, Anda dapat memiliki server PHP, Java, Python, atau Node.js.

Satu-satunya hal yang harus diperhatikan dari REST adalah respons pada permintaan harus selalu dilakukan dalam bahasa yang digunakan untuk pertukaran informasi, biasanya dengan XML atau JSON.
 

Kekurangan Menggunakan REST

Beberapa masalah REST tidak masalah terjadinya inheren dari gaya arsitektur, melainkan kelemahan implementasi REST dari HTTP. Masalah yang menonjol dari REST ini adalah lo-rest yang hanya menggunakan GET serta POST.
Meskipun secara teknis mungkin masih RESTful, interface yang seragam terkadang tak benar-benar membantu pengguna.

Satu masalah yang tidak spesifik untuk HTTP adalah untuk menangani bahasa pemograman yang digunakan untuk REST tak berorientasi sumber daya sampai dengan kode penanganan yang memetakan URI cenderung berantakan. Sebenarnya, Microsoft melakukan pekerjaan yang relatif baik dengan menerapkan ide pemetaan URI Joe Gregorio yang sudah membantu meringankan beberapa masalah.
Namun di sisi lain, relatif sulit untuk membuat REST dengan hyper-text driven sehingga menjadi kendala tersendiri pada REST.

Terakhir dan yang sangat penting adalah, REST bukanlah jawaban untuk semuanya. Sebagian besar implementasi REST tidak mendukung gagasan pub/sub REST mungkin merupakan sebuah alat yang bagus untuk perangkatmu, namun ini bukan solusi satu-satunya. Selain REST, Anda juga bisa menggunakan CRUD untuk mengembangkan sistem yang ingin Anda buat. Anda juga bisa mempelajari hal-hal lainnya berhubungan dengan pengembangan sistem website dan dan sistem informasi lainnya melalui IDMETAFORA.

Liputan Software ERP IDMETAFORA Indonesia!

Jika anda merasa artikel ini bermanfaat, bagikan ke pengikut anda melalui tombol dibawah ini:



Software ERP Indonesia

Artikel rekomendasi untuk Anda