Bagian 1: Apa itu REST Pada bagian ini kita akan melihat lebih dekat bagaimana komunikasi terjadi antara klien dan server. Seiring berjalannya waktu, kami akan mengungkap istilah-istilah baru dan memberikan penjelasannya. Untuk memperjelas semuanya, kami akan menganalisis komunikasi klien-server menggunakan contoh beberapa aplikasi RESTful. Katakanlah kita sedang mengembangkan aplikasi web yang mampu menyimpan informasi tentang pelanggan dan pesanan mereka. Itu. sistem kami mampu memanipulasi beberapa entitas: membuatnya, mengeditnya, menghapusnya, dan memberikan informasi tentangnya. Entitas-entitas ini adalah:
- klien – klien;
- pesanan - pesanan pelanggan;
- barang – barang.
Permintaan
Permintaan klien hampir selalu dibuat melalui HTTP. Secara umum, permintaan HTTP terdiri dari beberapa komponen:- metode HTTP;
- judul;
- URI;
- badan permintaan.
URI dan Sumber Daya
Data yang diperoleh atau diubah klien melalui permintaan disebut sumber daya. Dasar interaksi klien-server adalah manipulasi sumber daya. Sumber daya di REST adalah segala sesuatu yang dapat diberi nama. Dalam arti tertentu, ini seperti kelas di Java. Di Java kita bisa membuat kelas untuk apa saja. Hal yang sama terjadi di REST - sumber daya bisa berupa apa saja: pengguna, dokumen, laporan, pesanan. Semua ini dapat berupa abstraksi suatu entitas atau sesuatu yang konkret, misalnya file - gambar, video, animasi, file PDF. Sebagai contoh, kami memiliki 3 sumber daya:- klien – klien;
- pesanan - pesanan pelanggan;
- barang – barang.
- /clients - URI dari semua klien yang ada;
- /clients/23 - URI klien tertentu, yaitu klien dengan ID=23;
- /clients/4 - URI klien tertentu, yaitu klien dengan ID=4.
- /clients/4/orders — URI semua pesanan klien No.4;
- /clients/1/orders/12 - URI pesanan No.12 klien No.1.
- /clients/1/orders/12/items — URI daftar semua produk dalam pesanan No. 12 yang dibuat oleh klien No. 1.
metode HTTP
Metode HTTP (Metode HTTP Bahasa Inggris) adalah urutan karakter apa pun, kecuali kontrol dan pemisah, yang menunjukkan operasi utama pada sumber daya. Ada beberapa metode HTTP yang umum. Kami mencantumkan yang paling sering digunakan dalam layanan RESTful:- GET - digunakan untuk memperoleh informasi tentang sumber daya tertentu (melalui ID) atau kumpulan sumber daya;
- POST - digunakan untuk membuat sumber daya baru;
- PUT - digunakan untuk mengubah sumber daya (melalui ID);
- HAPUS - digunakan untuk menghapus sumber daya (melalui ID).
Judul
Permintaan, serta tanggapan, berisi header HTTP. Mereka mengirimkan informasi tambahan tentang permintaan (atau tanggapan). Header adalah pasangan nilai kunci. Anda dapat membaca daftar judul paling umum di halaman Wikipedia . Dengan REST, klien sering kali dapat mengirimkan header Accept dalam permintaan mereka ke server. Hal ini diperlukan untuk memberi tahu server dalam format apa yang diharapkan klien untuk menerima respons darinya. Berbagai pilihan format disajikan dalam apa yang disebut daftar tipe MIME. MIME (Multi Purpose Internet Mail Extensions) adalah spesifikasi untuk menyandikan informasi dan memformat pesan sehingga dapat dikirim melalui Internet. Setiap tipe MIME terdiri dari dua bagian, dipisahkan dengan garis miring: tipe dan subtipe. Contoh tipe MIME untuk berbagai tipe file:- teks - teks/polos, teks/css, teks/html;
- gambar - gambar/png, gambar/jpeg, gambar/gif;
- audio - audio/wav, audio/mpeg;
- video - video/mp4, video/ogg;
- aplikasi - aplikasi/json, aplikasi/pdf, aplikasi/xml, aplikasi/aliran oktet.
Accept:application/json
Header ini memberi tahu server bahwa klien mengharapkan menerima respons dalam format JSON.
Permintaan tubuh
Pesan yang dikirim oleh klien ke server. Apakah suatu permintaan memiliki isi atau tidak bergantung pada jenis permintaan HTTP. Misalnya, permintaan GET dan DELETE biasanya tidak berisi isi permintaan apa pun. Namun PUT dan POST dapat berisi: semuanya tentang tujuan fungsional dari jenis permintaan. Lagi pula, untuk menerima data dan menghapusnya berdasarkan id (yang dikirimkan dalam URL), Anda tidak perlu mengirim data tambahan ke server. Namun untuk membuat sumber daya baru (permintaan POST), Anda perlu mentransfer sumber daya ini. Hal yang sama berlaku untuk memodifikasi sumber daya yang ada. Di REST, format XML atau JSON paling sering digunakan untuk mengirimkan isi permintaan. Format yang paling umum adalah JSON. Misalkan kita ingin mengirim permintaan ke server, dan di dalamnya membuat sumber daya baru. Jika Anda ingat, sebagai contoh kita melihat aplikasi yang mengelola pesanan pelanggan. Katakanlah kita ingin membuat klien baru. Dalam kasus kami, kami menyimpan informasi berikut tentang klien: Nama Email Nomor telepon Maka isi permintaan tersebut dapat berupa JSON berikut:{
"name" : "Amigo",
"email" : "amigo@jr.com",
"phone" : "+7 (191) 746-43-23"
}
Menyatukan permintaan
Jadi, kita telah melihat apa saja isi permintaan klien. Sekarang mari kita berikan beberapa contoh kueri dengan deskripsiMeminta | Keterangan |
---|---|
|
Dapatkan informasi tentang klien No. 23 dalam format json atau xml |
|
Buat klien baru dengan kolom berikut: Nama - Amigo Email - amigo@jr.com Telp. — +7 (191) 746-43-23 |
|
Edit klien #1 sebagai berikut: Nama - Ben Email - bigben@jr.com Telp. — +380 (190) 346-42-13 |
|
Hapus pesanan No. 6 dari pelanggan No. 12 dari sistem |
Jawaban
Katakanlah beberapa kata tentang tanggapan server. Jawabannya biasanya terdiri dari bagian-bagian berikut:- Kode respon;
- header;
- badan respons.
Kode respons HTTP
Mari kita lihat lebih dekat kode respons HTTP. Berikut kutipan dari Wikipedia: Kode status HTTP adalah bagian dari baris pertama respons server terhadap permintaan melalui protokol HTTP. Ini adalah bilangan bulat dengan tiga angka desimal. Digit pertama menunjukkan kelas dari kondisi tersebut. Kode respons biasanya diikuti dengan frasa penjelasan dalam bahasa Inggris yang dipisahkan oleh spasi, yang menjelaskan kepada orang tersebut alasan respons tersebut. Contoh:- 201 Dibuat;
- 401 Tidak Sah;
- 507 Penyimpanan Tidak Memadai.
- 1ХХ - informasional;
- 2ХХ - menginformasikan tentang kasus keberhasilan penerimaan dan pemrosesan permintaan klien;
- 3XX - beri tahu klien bahwa agar berhasil menyelesaikan operasi, perlu membuat permintaan lain, biasanya menggunakan URI yang berbeda;
- 4ХХ - kesalahan klien. Misalnya, permintaan yang dibuat secara salah atau kode 404 Not Found yang terkenal, yang dapat terjadi ketika klien meminta sumber daya yang tidak ada;
- 5ХХ - kesalahan server. Dikembalikan ke klien jika operasi gagal karena kesalahan server.
GO TO FULL VERSION