Apa itu REST Web Service: Tutorial Back-End Developer

Apa itu REST Web Service: Tutorial Back-End Developer

Sebelum menjawab “Apa itu REST Web Service, kita perlu melihat perkembangan web service terlebih dulu. Dalam mengembangkan web service, kamu perlu menetapkan arsitektur apa yang hendak diadaptasikan. Dengan menetapkan arsitektur, maka client dan server menjadi lebih mudah dalam berkomunikasi karena memiliki pola atau gaya yang konsisten. Salah satu arsitektur yang banyak digunakan saat ini adalah REST.

Jadi apa itu REST Web Service?

REST atau Representational State Transfer adalah salah satu gaya arsitektur yang dapat diadaptasikan ketika membangun web service. Arsitektur ini sangat populer digunakan karena pengembangannya yang relatif mudah. Ia menggunakan pola request-response dalam berinteraksi, artinya ia memanfaatkan protokol HTTP.

Dalam implementasinya arsitektur REST benar-benar memisahkan peran client dan server, bahkan keduanya tidak harus saling mengetahui. Artinya ketika terjadi perubahan besar di sisi client, tidak akan berdampak pada sisi server, begitu juga sebaliknya.

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

REST API

Sebagian dari kalian mungkin mengenal Representational State Transfer dengan sebutan RESTful API. Yups, memang benar! RESTful merupakan 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 merupakan antarmuka yang menjadi perantara antara sistem aplikasi yang berbeda. API tak hanya dalam bentuk Web Service, bisa saja berupa SDK (Software Development Kit) ataupun lainnya.

Berikut beberapa sifat pada REST API:

  1. Client-Server
    Merupakan hal yang paling mendasar dalam membangun REST API. Server harus bisa merespon permintaan yang dilakukan client, baik itu ketika berhasil ataupun gagal. Komunikasi client dan server dilakukan melalui protokol HTTP.

  2. Stateless
    REST API tidak boleh menyimpan keadaan (state) apapun terkait client. Seluruh state harus tetap disimpan di client. Artinya, tidak ada session di REST API. Permintaan yang dilakukan client harus mengandung informasi yang jelas. Jangan berharap RESTful API akan menyimpan informasi dari permintaan sebelumnya untuk digunakan di permintaan selanjutnya.

  3. Cacheable
    Agar dapat merespon permintaan dengan cepat, sebaiknya REST API menerapkan prinsip cache. Sehingga setiap permintaan tidak melulu mengambil dari database. 

  4. Layered
    Ketika REST API server memiliki arsitektur yang kompleks, client seharusnya tidak perlu tahu bagaimana server melayaninya.

Tahukah kamu bahwa artikel ini diambil langsung dari salah satu materi dalam kelas Belajar Membuat Aplikasi Back-End untuk Pemula yang disusun oleh tim expert Dicoding bersama praktisi industri dan telah divalidasi oleh tim dari AWS (Amazon Web Services)?

Saat ini, AWS menyediakan kelas berbahasa Indonesia di bidang Back-End Developer secara GRATIS melalui program beasiswa Cloud and Back-End Developer Scholarship Program. Beasiswanya untuk umum, tanpa syarat, dan sepenuhnya gratis. Kamu cukup daftar dan isi formulir pendaftaran singkat di aws.dicoding.com. Setelah daftar, sudah pasti langsung dapat!

100.000 Beasiswa untuk Indonesia dari Amazon Web Services


Konsep-Konsep yang Harus Diterapkan Sebelum Membangun REST API

Sebelum membangun REST API, kita perlu mengenal terlebih dahulu bagaimana konsep-konsep penting yang harus diterapkan dalam membangun arsitektur ini. Apa sajakah konsep-konsep itu?

Ketika membangun REST API kita harus memperhatikan empat konsep berikut:

  1. Format Request dan Response
    REST API sering menggunakan JavaScript Object Notation atau JSON sebagai format data baik pada request ataupun response. Saat ini JSON adalah salah satu format standar dalam transaksi data. JSON sendiri menjadi format terpopuler mengalahkan pendahulunya, yaitu XML. Agar REST API dapat selalu merespon dengan format JSON, pastikan setiap response terdapat properti Content-Type dengan nilai application/json .

  2. HTTP Verbs/Methods
    Karena REST API menggunakan protokol HTTP, maka kita dapat memanfaatkan HTTP verbs (kata kerja) untuk menentukan aksi. Contohnya GET untuk mendapatkan data, POST untuk mengirimkan data baru, PUT untuk memperbarui data yang ada, dan DELETE untuk menghapus data. Verbs tersebut adalah verbs yang umum digunakan dalam operasi CRUD (Create, read, update, and delete).

  3. HTTP Response Code
    Status-Line merupakan salah satu bagian dari HTTP Response. Dalam status line terdapat response code yang mengindikasikan bahwa permintaan yang client lakukan telah berhasil atau tidak. Maka dari itu, ketika membangun REST API kita perlu memperhatikan dan menetapkan response code secara benar. Status code bernilai 3 digit angka, berikut nilai-nilai status code yang sering digunakan:
    • 200 (OK) – Permintaan client berhasil dijalankan oleh server.
    • 400 (Bad Request) – Permintaan client tidak dapat dijalankan karena kegagalan dalam proses validasi input dari client.
    • 500 (Internal Server Error) – Permintaan client tidak dapat dijalankan karena server mengalami kesalahan.
  4. URL Design
    URL, Path, atau End point merupakan beberapa hal penting yang harus diperhatikan ketika membangun REST API. Dengan merancang endpoint yang baik, penggunaan API akan lebih mudah dipahami. Ikutilah aturan umum atau convention agar penggunaan API memiliki standar yang diharapkan oleh banyak developer.

Jadi, sekarang kamu sudah tahu kan apa itu REST Web Service serta konsep-konsep yang harus diterapkan sebelum membangun REST API? Jika kamu tertarik untuk belajar lebih dalam mengenai REST Web Service, di Dicoding tersedia kelas Belajar Membuat Aplikasi Back-End untuk Pemula. Kelas ini merupakan bagian dari alur belajar (learning path) Back-End Developer yang disusun bersama Amazon Web Services beserta pelaku industri lainnya. Jika kamu butuh beasiswa untuk mendapatkan akses ke learning path tersebut, silakan daftar di program Cloud and Back-End Developer Scholarship.

Apa itu REST Web Service: Tutorial Back-End Developer – end

Baca juga artikel pilihan berikut ini :

  1.  Cloud and Back-End Developer Scholarship Telah Dibuka.
  2.  Mengembangkan Rest API dengan Ktor. Simpel!
  3.  GraphQL vs REST API: Apa bedanya?

Dibuka Pendaftaran Cloud and Back-End Developer Scholarship Program untuk 100.000 peserta umum


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Beasiswa Kelas Pemrograman

Dapatkan beragam informasi terbaru mengenai beasiswa dan informasi menarik lainnya melalui Newsletter Dicoding. Subscribe sekarang!