Gunakan URL untuk menentukan objek Anda, bukan tindakan Anda:
Perhatikan apa yang pertama kali Anda sebutkan tidak tenang:
/questions/show/<whatever>
Sebagai gantinya, Anda harus menggunakan URL Anda untuk menentukan objek Anda:
/questions/<question>
Kemudian Anda melakukan salah satu operasi di bawah ini pada sumber daya itu.
DAPATKAN:
Digunakan untuk mendapatkan sumber daya, membuat kueri daftar sumber daya, dan juga untuk menanyakan informasi hanya-baca pada sumber daya.
Untuk mendapatkan sumber pertanyaan:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
Untuk mendaftar semua sumber pertanyaan:
GET /questions HTTP/1.1
Host: whateverblahblah.com
POS:
Digunakan untuk membuat sumber daya.
Perhatikan bahwa berikut ini adalah kesalahan:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Jika URL belum dibuat, Anda tidak boleh menggunakan POST untuk membuatnya saat menentukan nama. Ini akan menghasilkan kesalahan sumber daya tidak ditemukan karena belum ada. Anda harus MENEMPATKAN sumber daya di server terlebih dahulu. Anda dapat berargumen bahwa dengan membuat pertanyaan baru, Anda juga memperbarui sumber / pertanyaan karena sekarang akan menghasilkan satu pertanyaan lagi dalam daftar pertanyaannya.
Anda harus melakukan sesuatu seperti ini untuk membuat sumber daya menggunakan POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
Perhatikan bahwa dalam kasus ini nama sumber daya tidak ditentukan, jalur URL objek baru akan dikembalikan kepada Anda.
MENGHAPUS:
Digunakan untuk menghapus sumber daya.
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
TARUH:
Digunakan untuk membuat sumber daya, atau menimpanya, saat Anda menentukan URL sumber daya.
Untuk sumber daya baru:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Untuk menimpa sumber daya yang ada:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... Ya, mereka sama. PUT sering kali dideskripsikan sebagai metode 'edit', karena dengan mengganti seluruh sumber daya dengan versi yang sedikit diubah, Anda telah mengedit apa yang akan didapatkan klien saat mereka melakukannya nanti.
Menggunakan REST dalam bentuk HTML:
Spesifikasi HTML5 mendefinisikan GET dan POST untuk elemen formulir .
Atribut konten metode adalah atribut yang disebutkan dengan kata kunci dan status berikut:
- Kata kunci GET, pemetaan ke status GET, menunjukkan metode HTTP GET.
- Kata kunci POST, pemetaan ke status POST, menunjukkan metode HTTP POST.
Secara teknis, spesifikasi HTTP tidak membatasi Anda hanya pada metode tersebut. Secara teknis Anda bebas menambahkan metode apa pun yang Anda inginkan, namun dalam praktiknya, ini bukan ide yang bagus. Idenya adalah bahwa semua orang tahu bahwa Anda menggunakan GET untuk membaca data, jadi akan membingungkan jika Anda memutuskan untuk menggunakan BACA. Yang mengatakan ...
PATCH:
Ini adalah metode yang didefinisikan dalam RFC formal. Ini dirancang untuk digunakan ketika Anda ingin mengirim hanya sebagian modifikasi ke sumber daya, itu akan digunakan seperti PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Perbedaannya adalah PUT harus mengirim seluruh sumber daya, tidak peduli seberapa besar itu dibandingkan dengan apa yang sebenarnya berubah, sementara PATCH Anda hanya dapat mengirim perubahan.