Я розробляв веб-додаток, а потім перестав думати про те, як мій api повинен бути розроблений як RESTful веб-сервіс. Наразі більшість моїх URI є загальними і можуть застосовуватися до різних веб-додатків:
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
У мене є відчуття, що я роблю тут багато неправильного після того, як тикаю на SO та Google.
Почнемо з того /logout, можливо, оскільки я нічого не роблю GET- може бути більш доречним POSTзапит /logout, знищити сеанс, а потім GETперенаправити. І чи повинен /logoutтермін залишатися?
Що про /loginі /register. Я міг би змінити , /registerщоб , /registrationале це не змінює , як моя служба в основному працює - якщо вона має більш глибокі питання.
Зараз я помічаю, що ніколи не виставляю /userресурс. Можливо, це можна було б якось використати. Наприклад, візьміть користувача myUser:
foo.com/user/myUser
або
foo.com/user
Кінцевому користувачеві не потрібна додаткова багатослівність у URI. Однак, хто з них є більш привабливим візуально?
Тут я помітив деякі інші питання на ТАК щодо цього бізнесу REST, але я дуже вдячний, коли б це було можливо, деякі поради щодо того, що я виклав тут.
Дякую!
ОНОВЛЕННЯ:
Я також хотів би отримати декілька думок щодо:
/user/1
проти
/user/myUserName