REST menggunakan HTTP method standard sebagai kata kerja yang bertindak ke atas sumber. Pemetaan lazim kepada CRUD (Create, Read, Update, Delete) ialah:
REST menggunakan HTTP method standard sebagai kata kerja yang bertindak ke atas sumber. Pemetaan lazim kepada CRUD (Create, Read, Update, Delete) ialah:
| CRUD | Method | Kegunaan biasa |
|---|
| Create | POST | Tambah sumber baharu ke sesuatu koleksi |
| Read | GET | Ambil sesuatu sumber atau senarai |
| Update (penuh) | PUT | Ganti sumber sepenuhnya |
| Update (separa) | PATCH | Ubah suai sebahagian medan |
| Delete | DELETE | Buang sumber |
POST /users HTTP/1.1
Content-Type: application/json
{ "name": "Ann", "email": "[email protected]" }
HTTP/1.1 201 Created
Location: /users/42
{ "id": 42, "name": "Ann", "email": "[email protected]" }
PUT /users/42 menghantar keseluruhan representasi dan menggantikannya; PATCH /users/42 menghantar hanya medan yang hendak diubah (cth. { "email": "[email protected]" }).
Ini dua sifat berbeza:
GET, HEAD, OPTIONS ialah safe.GET, PUT, DELETE, HEAD ialah idempotent.Method Safe? Idempotent?
GET ya ya
HEAD ya ya
PUT tidak ya (ganti dengan body sama dua kali = hasil sama)
DELETE tidak ya (padam dua kali = masih terpadam)
PATCH tidak tidak* (bergantung pada patch; tidak dijamin)
POST tidak tidak (POST dua kali biasanya mencipta dua sumber)
Penemu duga bertanya ini untuk melihat sama ada anda memahami semantik HTTP cukup baik untuk membina API yang boleh dipercayai. Perbezaan safe/idempotent bukan akademik: ia mengawal secara langsung apa yang dibenarkan untuk client, proxy, dan CDN lakukan. Method safe boleh di-cache dan pra-ambil dengan bebas; method idempotent boleh di-retry secara automatik selepas timeout rangkaian tanpa risiko menggandakan kesan sampingan — sebab itulah client boleh dengan selamat me-retry PUT atau DELETE tetapi mesti berhati-hati me-retry POST (ia mungkin mencipta dua order). Kesilapan klasik ialah menggunakan GET untuk mencetuskan kesan sampingan (cth. GET /users/42/delete), yang merosakkan caching dan membiarkan crawler tersilap mengubah data. Memilih method yang betul — dan menghormati kontrak safety dan idempotency-nya — itulah yang menjadikan API boleh diramal dan selamat untuk membina tooling di sekelilingnya.
Pustaka soalan temu duga IT dengan jawapan terperinci — daripada Junior hingga Senior.
Derma