Có rất nhiều cuộc thảo luận về thiết kế REST URI, nhưng không có câu trả lời nào chính xác cho câu hỏi của tôi.Thiết kế REST URI cho cấu trúc cây
Giả sử tôi có một số danh sách chứa các tác vụ và/hoặc danh sách khác (list = node và task = leaf).
Chúng ta có thể có cái gì đó như
/lists/{id_list1}/lists/{id_list2}/lists/{id_list3}/tasks/{id_task1}
hoặc có thể là một phiên bản ngắn hơn:
/lists/{id_list1}/{id_list2}/{id_list3}/{id_task1}
Nhưng những gì về cây thực sự sâu?
Tôi cũng đã suy nghĩ về mối quan hệ cha/con mà có thể được dịch như
/lists/{id_list_parent}/{id_list_or_task_child}
nhưng tôi cảm thấy như một cái gì đó còn thiếu ...
Điều gì sẽ là một thiết kế thông minh cho cây REST của URI?
EDIT
Xin lỗi vì câu trả lời muộn của tôi!
Vì vậy, tôi nghĩ rằng tôi đang trộn 2 nhu cầu: URI API và URI trình duyệt.
Đây là cách tôi nhìn thấy điều:
Về phía API, tôi sẽ chỉ có những URI cho cả ghi và đọc các phương pháp (các '/ id' ở cuối là không cần thiết, cho tạo ví dụ) :
/lists/id
/tasks/id
Mở trình duyệt của tôi tuy nhiên, tôi sẽ có một cái gì đó như thế này:
/lists/id/lists/id/tasks/
Chỉ có phần đầu tiên (/ danh sách/id) sẽ được giải thích bởi các máy chủ, phần thứ hai (danh sách/id/tasks /) wi sẽ được sử dụng bởi javascript phía máy khách của tôi để tìm các nhiệm vụ của danh sách phụ của danh sách nhận được từ máy chủ.
Bạn nghĩ gì về phương pháp này, có điều gì đó cảm thấy sai trong đó không?
Hãy xem url trên Git Hub https://github.com/twitter/bootstrap/tree/master/docs/templates thư mục là các nút và tệp là các lá. Tôi nghĩ rằng nó hoạt động tốt! –
URI không phải là một phần của API REST. REST là về nội dung chứ không phải URI. Điều này sẽ cho phép bạn tự do chọn một tổ chức URI và thay đổi nó sau này. Dù sao: tại sao bạn cần/danh sách/{id_list1}/danh sách/{id_list2}/danh sách/{id_list3}/tasks/{id_task1}? Điều này dường như dẫn đến nhiệm vụ với id 3, do đó, điều này không thể được giảm xuống/lists/{id_list3}/tasks để có danh sách nhiệm vụ và/tasks/{id_task1} cho tác vụ trong danh sách? – jmclem
Cảm ơn bạn đã trả lời nhưng câu hỏi của tôi không chính xác, hãy xem chỉnh sửa của tôi ở trên. – greg3z