CodeGym/Java Blog/Acak/Sekilas tentang REST. Bagian 1: Apa itu REST?
John Squirrels
Level 41
San Francisco

Sekilas tentang REST. Bagian 1: Apa itu REST?

Dipublikasikan di grup Acak
anggota
Hai! Hari ini kita akan belajar tentang topik yang sangat menarik dan, yang terpenting, permintaan tinggi di pasar tenaga kerja: REST. Sekilas tentang REST.  Bagian 1: Apa itu REST?  - 1 Kami akan membagi ikhtisar kami tentang REST menjadi tiga bagian:
  1. Pada bagian pertama, kita akan membahas sejarah REST dan menjelaskan prinsip-prinsip yang menjadi dasar REST.

  2. Yang kedua, kami akan mempertimbangkan bagaimana komunikasi antara klien dan server terjadi melalui protokol HTTP.

  3. Yang ketiga, kita akan menulis aplikasi RESTful kecil yang akan kita uji menggunakan program bernama "Postman".

Artikel ini ditujukan untuk pembaca yang akrab dengan istilah-istilah berikut:
  • HTTP
  • URL dan URI
  • JSON dan (pada tingkat lebih rendah) XML
  • Injeksi ketergantungan

Bagian 1. Apa itu REST?

REST, seperti banyak hal di dunia TI, adalah akronim. Ini berasal dari "Representational State Transfer" . Ini adalah gaya arsitektur untuk interaksi antar komponen sistem terdistribusi dalam jaringan komputer. Sederhananya, REST menentukan gaya interaksi (pertukaran data) antara berbagai komponen sistem, yang masing-masing dapat secara fisik ditempatkan di tempat yang berbeda. Gaya arsitektur ini adalah serangkaian kendala yang konsisten ketika merancang sistem terdistribusi. Kendala ini terkadang disebut prinsip panduan REST. Tidak banyak, hanya 6. Kami akan membicarakannya nanti.
Aplikasi yang dibangun dengan mempertimbangkan prinsip REST, yaitu aplikasi yang tidak melanggar batasan REST, disebut "RESTful".

Sejarah REST

Istilah REST diperkenalkan oleh Roy Fielding, salah satu pencipta protokol HTTP, dalam gelar Ph.D. tesis berjudul "Gaya Arsitektur dan Desain Arsitektur Perangkat Lunak Berbasis Jaringan" pada tahun 2000. Meskipun istilah REST masih bisa disebut muda, konsep yang diwakilinya terletak pada inti dari World Wide Web. Kami tidak akan menyelam jauh ke dalam sejarah istilah tersebut. Jika Anda ingin mendalami sumber utama, lihatlah disertasi Fielding .

Kendala dan prinsip REST

Sebagaimana dinyatakan di atas, REST mendefinisikan bagaimana komponen sistem terdistribusi harus berinteraksi satu sama lain. Secara umum, ini terjadi melalui proses permintaan-respons. Komponen yang mengirimkan permintaan disebut klien , dan komponen yang memproses permintaan dan mengirimkan respons ke klien disebut server .. Permintaan dan tanggapan paling sering dikirim melalui protokol HTTP. HTTP adalah singkatan dari HyperText Transfer Protocol. Biasanya, server adalah beberapa aplikasi web. Klien bisa hampir apa saja. Misalnya, aplikasi seluler yang meminta data dari server. Atau browser yang mengirimkan permintaan dari halaman web ke server untuk mengunduh data. Aplikasi A dapat meminta data dari Aplikasi B. Dalam hal ini, A adalah klien terhadap B, dan B adalah server terhadap A. Pada saat yang sama, A dapat memproses permintaan dari B, C, D, dll. Dalam hal ini, aplikasi A adalah server sekaligus klien. Semuanya tergantung pada konteksnya. Satu hal yang pasti: komponen yang mengirimkan permintaan adalah klien. Komponen yang menerima, memproses, dan menanggapi permintaan adalah server. Namun, tidak setiap sistem yang komponennya berkomunikasi melalui proses permintaan-respons adalah sistem RESTful. Agar sistem dianggap RESTful, ia harus memenuhi enam kendala REST:

1. Arsitektur klien-server

Kendala ini adalah tentang pemisahan keprihatinan. Penting untuk memisahkan persyaratan antarmuka klien dari persyaratan server yang menyimpan data. Kendala ini membuat kode klien lebih portabel untuk platform lain, dan menyederhanakan sisi server meningkatkan skalabilitas sistem. Membuat perbedaan antara "klien" dan "server" memungkinkan mereka dikembangkan secara independen satu sama lain.

2. Tanpa kewarganegaraan

Arsitektur RESTful membutuhkan kondisi berikut untuk dipenuhi. Dalam periode antara permintaan, server tidak boleh menyimpan informasi tentang status klien dan sebaliknya. Semua permintaan dari klien harus disusun sedemikian rupa sehingga memberi server semua informasi yang diperlukan untuk menyelesaikan permintaan. Dengan demikian, baik server maupun klien dapat "memahami" setiap pesan yang diterima, tanpa bergantung pada pesan sebelumnya.

3. Dapat di-cache

Klien dapat meng-cache respons server. Ini, pada gilirannya, harus secara eksplisit atau implisit ditetapkan sebagai cache atau non-cache, sehingga klien tidak menerima data yang kedaluwarsa atau salah sebagai tanggapan atas permintaan berikutnya. Caching yang benar membantu untuk sepenuhnya atau sebagian menghilangkan beberapa interaksi klien-server, selanjutnya meningkatkan kinerja sistem dan skalabilitas.

4. Antarmuka yang seragam

Persyaratan mendasar dari arsitektur RESTful mencakup antarmuka yang seragam dan terpadu. Klien harus selalu memahami format dan alamat yang perlu digunakan saat mengirim permintaan, dan server, pada gilirannya, juga harus memahami format yang harus digunakan saat menanggapi permintaan klien. Interaksi klien-server yang konsisten ini yang menjelaskan apa, di mana, dalam bentuk apa, dan bagaimana mengirim data adalah antarmuka terpadu.

5. Lapisan

Yang kami maksud dengan lapisan adalah struktur hierarkis jaringan. Terkadang klien dapat berkomunikasi langsung dengan server, dan terkadang hanya berkomunikasi dengan node perantara. Penggunaan server perantara dapat meningkatkan skalabilitas berkat load balancing dan caching terdistribusi. Mari kita berikan contoh. Bayangkan sebuah aplikasi seluler yang populer di seluruh dunia. Bagian integral dari aplikasi melibatkan memuat gambar. Jumlah penggunanya jutaan, jadi satu server tidak dapat menangani beban seberat itu. Memisahkan sistem menjadi beberapa lapisan akan menyelesaikan masalah ini. Jika klien meminta gambar dari node perantara, maka node perantara meminta gambar dari server yang paling sedikit dimuat saat ini dan mengembalikan gambar tersebut ke klien. Jika caching diterapkan dengan benar di setiap level hierarki,

6. Kode sesuai permintaan (opsional)

Batasan ini menyiratkan bahwa klien dapat memperluas fungsionalitasnya dengan mengunduh kode dari server dalam bentuk applet atau skrip.

Keuntungan dari arsitektur RESTful

Aplikasi yang mematuhi semua batasan yang disebutkan di atas memiliki keunggulan sebagai berikut: keandalan (tidak perlu menyimpan status klien, yang mungkin hilang)
  • kinerja (karena penggunaan cache)
  • skalabilitas
  • komunikasi yang transparan
  • antarmuka sederhana
  • portabilitas
  • kemampuan untuk melakukan perubahan dengan mudah
  • kemampuan untuk berkembang dan beradaptasi dengan persyaratan baru
Sekilas tentang REST. Bagian 2: Komunikasi antara klien dan server Ikhtisar REST. Bagian 3: Membangun layanan RESTful di Spring Boot
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar