Saya sedang mendesain aplikasi web dan kemudian berhenti untuk memikirkan bagaimana api saya harus dirancang sebagai layanan web yang tenang. Untuk saat ini, sebagian besar URI saya bersifat generik dan mungkin berlaku untuk berbagai aplikasi web:
GET /logout // destroys session and redirects to /
GET /login // gets the webpage that has the login form
POST /login // authenticates credentials against database and either redirects home with a new session or redirects back to /login
GET /register // gets the webpage that has the registration form
POST /register // records the entered information into database as a new /user/xxx
GET /user/xxx // gets and renders current user data in a profile view
POST /user/xxx // updates new information about user
Saya merasa saya melakukan banyak kesalahan di sini setelah melihat-lihat SO dan Google.
Dimulai dengan /logout
, mungkin karena saya tidak benar-benar GET
apa-apa - mungkin lebih tepat untuk POST
meminta /logout
, menghancurkan sesi, dan kemudian GET
pengalihan. Dan haruskah /logout
istilah itu tetap ada?
Tentang /login
dan /register
. Saya dapat mengubah /register
ke /registration
tetapi itu tidak mengubah cara kerja layanan saya secara fundamental - jika ada masalah yang lebih dalam.
Saya perhatikan sekarang bahwa saya tidak pernah mengekspos /user
sumber daya. Mungkin itu bisa dimanfaatkan entah bagaimana. Misalnya, ambil pengguna myUser
:
foo.com/user/myUser
atau
foo.com/user
Pengguna akhir tidak memerlukan verbositas ekstra di URI. Namun, mana yang lebih menarik secara visual?
Saya memperhatikan beberapa pertanyaan lain di SO tentang bisnis REST ini, tetapi saya akan sangat menghargai beberapa panduan tentang apa yang telah saya paparkan di sini jika memungkinkan.
Terima kasih!
MEMPERBARUI:
Saya juga ingin beberapa pendapat tentang:
/user/1
vs.
/user/myUserName