Artikel ini adalah pengantar untuk layanan web RESTful dan gambaran umum tentang REST dan HTTP.
Dia memulai serangkaian posting tentang pengembangan API REST:
- Pengantar REST API - RESTful Web Services
- Perbedaan antara REST dan SOAP
- REST API development - apa itu Contract First (kontrak pertama)?
- REST API development - apa itu Code First (kode pertama)?
- REST API - Apa itu HATEOAS?
- Rekomendasi API REST - Contoh Desain Layanan Web di Jawa dan Musim Semi

REST adalah singkatan dari REpresentational State Transfer (Wikipedia: “mentransfer status presentasi”). Ini adalah pendekatan arsitektur populer untuk membuat API di dunia modern.
Anda akan belajar:
- Apa itu REST?
- Apa REST API berdasarkan?
- Bagaimana HTTP digunakan saat membuat REST API?
- Apa itu sumber daya?
- Bagaimana Anda mendefinisikan sumber daya REST API?
- Apa praktik terbaik untuk mengembangkan API REST?
Apa itu REST?
REST adalah singkatan dari Transfer Negara Representasi. Itu adalah istilah yang awalnya diciptakan oleh Roy Fielding, yang juga merupakan salah satu pencipta protokol HTTP. Fitur khas dari layanan REST adalah bahwa mereka memanfaatkan protokol HTTP dengan sebaik-baiknya. Sekarang mari kita lihat HTTP.
Ikhtisar HTTP
Mari buka browser terlebih dahulu dan buka halaman web:

Dan kemudian klik pada salah satu halaman hasil:

Selanjutnya, kita dapat mengklik tautan di halaman tempat kita berada:

Dan pergi ke halaman lain:

Beginilah biasanya kami menjelajahi web.
Ketika kita menjelajahi Internet, banyak hal terjadi di balik layar. Berikut ini adalah pandangan yang disederhanakan tentang apa yang terjadi antara browser dan server yang berjalan di situs web yang mereka kunjungi:

Protokol HTTP
Ketika Anda memasukkan URL di browser Anda, seperti
www.google.com , permintaan dikirim ke server di URL. Kemudian server ini membentuk dan mengeluarkan jawabannya. Format permintaan dan tanggapan ini penting. Format-format ini ditentukan oleh protokol
HTTP Hyper Text Transfer Protocol .
Saat Anda mengetik URL di browser, itu mengirimkan permintaan GET ke server yang ditentukan. Server kemudian merespons dengan respons HTTP yang berisi data
HTML - Hyper Text Markup Language . Browser kemudian menerima kode HTML ini dan menampilkannya di layar.
Misalkan Anda mengisi formulir pada halaman web dengan daftar elemen. Dalam hal ini, ketika Anda mengklik tombol
Kirim , permintaan HTTP
POST dikirim ke server.
Layanan web HTTP dan RESTful
HTTP menyediakan lapisan dasar untuk membuat layanan web. Karena itu, penting untuk memahami HTTP. Berikut adalah beberapa abstraksi kunci.
Sumberdaya
Sumber daya adalah abstraksi kunci yang menjadi fokus protokol HTTP. Sumber daya adalah semua yang ingin Anda perlihatkan kepada dunia luar melalui aplikasi Anda. Misalnya, jika kita menulis aplikasi manajemen tugas, instance sumber akan menjadi sebagai berikut:
- Pengguna tertentu
- Tugas khusus
- Daftar tugas
Sumber daya URI
Ketika Anda mengembangkan layanan RESTful, Anda harus fokus pada sumber daya aplikasi. Cara kami mengidentifikasi sumber daya untuk diberikan adalah dengan menetapkannya sebagai URI, pengidentifikasi sumber daya universal. Sebagai contoh:
- Buat pengguna: POST / pengguna
- Hapus pengguna: HAPUS / pengguna / 1
- Dapatkan semua pengguna: GET / pengguna
- Dapatkan satu pengguna: GET / pengguna / 1
SISA dan Sumber Daya
Penting untuk dicatat bahwa dengan REST Anda perlu memikirkan aplikasi dalam hal sumber daya:
Tentukan sumber daya apa yang ingin Anda buka untuk dunia luar.
Gunakan kata kerja yang sudah ditentukan oleh protokol HTTP untuk melakukan operasi pada sumber daya ini.
Begini cara layanan REST biasanya diterapkan:
- Format pertukaran data : tidak ada batasan. JSON adalah format yang sangat populer, meskipun yang lain seperti XML dapat digunakan.
- Transport : selalu HTTP. REST sepenuhnya berbasis HTTP.
- Definisi layanan : Tidak ada standar untuk ini, dan REST fleksibel. Ini mungkin menjadi kelemahan dalam beberapa skenario, karena aplikasi yang mengkonsumsi mungkin perlu memahami format permintaan dan respons. Namun, bahasa definisi aplikasi Web seperti WADL (Web Application Definition Language) dan Swagger banyak digunakan.
REST berfokus pada sumber daya dan seberapa efisien Anda melakukan operasi dengan mereka menggunakan HTTP.
Komponen HTTP
HTTP mendefinisikan struktur permintaan berikut:
- baris permintaan ( baris permintaan ) - mendefinisikan jenis pesan
- header permintaan ( bidang tajuk ) - mencirikan badan pesan, parameter transmisi dan informasi lainnya
- isi pesan ( isi ) - opsional
HTTP mendefinisikan struktur berikut untuk pesan respons:
- baris status termasuk kode status dan pesan alasan
- bidang tajuk respons
- isi pesan tambahan ( isi )
Metode permintaan HTTP
Metode yang digunakan dalam permintaan HTTP menunjukkan tindakan apa yang ingin Anda lakukan dengan permintaan ini. Contoh penting:
- DAPATKAN : dapatkan informasi sumber daya terperinci
- POST : buat sumber daya baru
- PUT : perbarui sumber daya yang ada
- HAPUS : Hapus sumber daya
Kode status respons HTTP
Kode status selalu ada dalam respons HTTP. Contoh umum:
- 200 - sukses
- 404 - halaman tidak ditemukan
Pada masalah ini ada
video penulis.
Ringkasan
Artikel ini memberikan ikhtisar tingkat atas dari gaya arsitektur REST. Fakta bahwa HTTP adalah blok bangunan utama layanan REST ditekankan. HTTP adalah protokol yang digunakan untuk menentukan struktur permintaan dan tanggapan browser. Kami telah melihat bahwa HTTP terutama berkaitan dengan sumber daya yang tersedia di server web. Sumber daya diidentifikasi menggunakan URI, dan operasi pada sumber daya ini dilakukan menggunakan kata kerja yang ditentukan oleh protokol HTTP.
Terakhir, kami melihat bagaimana layanan REST memanfaatkan fitur-fitur yang ditawarkan oleh HTTP untuk menyediakan sumber daya bagi dunia luar. REST tidak memberlakukan batasan apa pun pada format presentasi sumber daya atau definisi layanan.
Bacaan tambahan
Yayasan Arsitektur RESTfulMengembangkan API REST