Khi làm việc ở đây, chúng tôi có một hộp cung cấp nguồn cấp dữ liệu XML cho các đối tác kinh doanh. Yêu cầu đối với nguồn cấp dữ liệu của chúng tôi được tùy chỉnh bằng cách chỉ định các tham số và giá trị chuỗi truy vấn. Một số tham số này là bắt buộc, nhưng nhiều tham số thì không.
Ví dụ: chúng tôi yêu cầu tất cả các yêu cầu chỉ định GUID để xác định đối tác và yêu cầu có thể là thao tác "lấy thông tin mới nhất" hoặc "tìm kiếm":
tìm kiếm: http://services.null.ext/?id=[GUID]&q=[Tìm kiếmTừ khóa]
Dữ liệu mới nhất trong danh mục: http://services.null.ext/?id=[GUID]&category=[ID]
Việc xây dựng lược đồ URL RESTful cho các tham số này thật dễ dàng:
tìm kiếm: http://services.null.ext/[GUID]/search/[Từ khóa]
cập nhật: http://services.null.ext/[GUID]/latest/category/[ID]
Nhưng chúng ta nên làm gì với hàng tá tham số tùy chọn mà chúng ta có? Nhiều trong số chúng loại trừ lẫn nhau và nhiều trong số chúng cần được sử dụng kết hợp. Rất nhanh chóng, số lượng đường đi có thể trở nên cực kỳ phức tạp.
Một số phương pháp được đề xuất về cách ánh xạ các URL có chuỗi truy vấn phức tạp tới các đường dẫn /REST/ful/thân thiện với người dùng hơn là gì?
(Tôi quan tâm đến các quy ước, sơ đồ, mẫu, v.v. hơn là các kỹ thuật cụ thể để triển khai việc viết lại URL trong máy chủ web hoặc khung.)
Bạn nên giữ các tham số truy vấn tùy chọn trong chuỗi truy vấn. Không có "quy tắc" nào trong REST nói rằng bạn không thể có chuỗi truy vấn. Trên thực tế, nó hoàn toàn ngược lại. Chuỗi truy vấn phải được sử dụng để thay đổi Chế độ xem mà bạn đang truyền lại cho máy khách.
Hãy nhấn mạnh vào việc sử dụng "các thực thể có trạng thái có thể biểu thị" cho các thành phần đường dẫn URL của bạn. Các danh mục có vẻ ổn, nhưng chính xác thì bạn đang cung cấp những gì qua XML? Chức vụ? Mục nhập danh mục? phần?
Tôi nghĩ một cách phân loại REST tốt hơn sẽ giống như thế này (giả sử nội dung nguồn cấp dữ liệu XML của bạn là một "bài viết"):
Nếu bạn đang xây dựng cấu trúc REST mà không xem xét các thực thể mà bạn đại diện thì bạn đang không thực hiện REST. Bạn đang làm một cái gì đó khác.
看看bài viết này về các phương pháp hay nhất về REST .nó cũ nhưng có thể giúp ích.
Tôi là một lập trình viên xuất sắc, rất giỏi!