URL cho biết chính tài nguyên. "Khách hàng" là tài nguyên có thể hoạt động, vì vậy phải là một phần của url cơ sở: /orders/view/client/23
.
Tham số chỉ là vậy, để tham số hóa quyền truy cập vào tài nguyên. Điều này đặc biệt có hiệu lực với các bài đăng và tìm kiếm: /orders/find?q=blahblah&sort=foo
. Có một đường thẳng giữa các thông số và tài nguyên phụ: /orders/view/client/23/active versus /orders/view/client/23?show=active
. Tôi khuyên bạn nên chọn kiểu tài nguyên phụ và tham số dự trữ cho các tìm kiếm.
Vì mỗi điểm cuối Trả lời chuyển trạng thái (để xáo trộn chú thích), tiêu đề tùy chỉnh chỉ nên được sử dụng cho những thứ không liên quan đến tên của tài nguyên (url), trạng thái tài nguyên (phần thân) hoặc các tham số ảnh hưởng trực tiếp đến tài nguyên (tham số). Điều đó để lại siêu dữ liệu thực sự về yêu cầu cho tiêu đề tùy chỉnh.
HTTP có nhiều lựa chọn tiêu đề bao gồm hầu hết mọi thứ bạn cần. Nơi tôi đã nhìn thấy các tiêu đề tùy chỉnh xuất hiện là trong hệ thống yêu cầu hệ thống hoạt động thay mặt cho người dùng. Hệ thống proxy sẽ xác thực người dùng và thêm "X-User: userid
" vào tiêu đề và sử dụng thông tin đăng nhập hệ thống để đạt điểm cuối. Hệ thống nhận xác nhận rằng thông tin đăng nhập hệ thống được ủy quyền hành động thay mặt cho người dùng, sau đó xác thực rằng người dùng được phép thực hiện hành động.
Cảm ơn câu trả lời toàn diện như vậy! Bạn vẫn sẽ sử dụng X-User cho một API di động có nguy cơ có một proxy xấu (mà loại bỏ tiêu đề) vẫn còn cao? –
Không, việc sử dụng X-Người dùng mà tôi đã đề cập là trong hệ thống đối với các kết nối hệ thống mà hệ thống đang hành động thay mặt cho bên thứ ba. Ví dụ, User U nói chuyện với Server A. Server A trình bày thông tin đăng nhập vào Server B với tiêu đề X-User để nói "Sử dụng thông tin đăng nhập của tôi để kiểm tra xem tôi có được ủy quyền thực hiện tác vụ này thay mặt cho Người dùng U." Điều này xuất hiện trong Kiến trúc hướng dịch vụ và thường bạn sử dụng HTTPS. Nền tảng di động hầu như luôn luôn là hành động của chính Người dùng và sử dụng thông tin xác thực người đầu tiên thích hợp cho giao dịch. – Nialscorva
Đoạn thứ ba là một trong những câu trả lời thông tin nhất mà tôi đã đọc trên SO ;-) – Alistair77