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 GETapa-apa - mungkin lebih tepat untuk POSTmeminta /logout, menghancurkan sesi, dan kemudian GETpengalihan. Dan haruskah /logoutistilah itu tetap ada?
Tentang /logindan /register. Saya dapat mengubah /registerke /registrationtetapi itu tidak mengubah cara kerja layanan saya secara fundamental - jika ada masalah yang lebih dalam.
Saya perhatikan sekarang bahwa saya tidak pernah mengekspos /usersumber 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