Tôi đang thiết kế một ứng dụng web và sau đó dừng lại để suy nghĩ về cách api của tôi nên được thiết kế như một dịch vụ web RESTful. Hiện tại, hầu hết các URI của tôi là chung và có thể áp dụng cho các ứng dụng web khác nhau:
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
Tôi có cảm giác rằng tôi đang làm rất nhiều sai ở đây sau khi xem xét trên SO và google.
Bắt đầu với /logout
, có lẽ vì tôi không thực sự GET
bất cứ điều gì - nó có thể thích hợp hơn với POST
yêu cầu /logout
hủy phiên và sau đó GET
chuyển hướng. Và /logout
kỳ hạn có nên ở lại không?
Còn về /login
và /register
. Tôi có thể thay đổi /register
thành /registration
nhưng điều đó không thay đổi cách dịch vụ của tôi về cơ bản hoạt động - nếu nó có vấn đề sâu hơn.
Bây giờ tôi nhận thấy rằng tôi không bao giờ để lộ /user
tài nguyên. Có lẽ điều đó có thể được sử dụng bằng cách nào đó. Ví dụ: lấy người dùng myUser
:
foo.com/user/myUser
hoặc là
foo.com/user
Người dùng cuối không yêu cầu thêm chi tiết đó trong URI. Tuy nhiên, cái nào hấp dẫn hơn về mặt trực quan?
Tôi nhận thấy một số câu hỏi khác ở đây trên SO về công việc kinh doanh REST này, nhưng tôi thực sự sẽ đánh giá cao một số hướng dẫn về những gì tôi đã đưa ra ở đây nếu có thể.
Cảm ơn!
CẬP NHẬT:
Tôi cũng muốn có một số ý kiến về:
/user/1
vs
/user/myUserName