2009-01-12 16 views
6

Trong đường dẫn:Trong MVC, thông tin phân trang có nên đi trong đường dẫn hoặc chuỗi truy vấn không?

Format:http://mydomain.com/ {loại}/{tiểu thể loại}/{PAGENUMBER}/{PageSize}

Ví dụ:http://mydomain.com/books/thriller/3/25

Trong chuỗi truy vấn:

Định dạng:http://mydomain.com/ {category}/{subcategory}? PAGENUMBER = {PAGENUMBER} & PageSize = {PageSize}

Ví dụ:http://mydomain.com/books/thriller?pageNumber=3&pageSize=25

Tôi thích có tất cả mọi thứ trên con đường, nhưng vấn đề của tôi với điều đó là trong khi nó là rõ ràng (hoặc ít nhất hơi hiển nhiên) "sách" và "phim kinh dị" là ví dụ đầu tiên, "3" và "25" có vẻ khá tùy ý.

Có phương pháp kinh điển nào để xác định điều gì xảy ra ở đâu trong MVC hay chỉ thực sự là do nhà phát triển?

Trả lời

17

Tôi thích những thứ như pagenumbers có trong các biến truy vấn. Tôi nghĩ rằng có một sự khác biệt trong descriptiveness giữa

http://mydomain.com/books/thriller?pagesize=50&page=4 

http://mydomain.com/books/thriller/50/4 

Điểm (với tôi) của việc có sạch url được cho họ được mô tả nhiều hơn và có thể đọc được, và tôi tìm thấy những ví dụ đầu tiên chỉ là vậy thôi.

Một điểm thú vị do JohnRudolfLewis là:

Một quy tắc của ngón tay cái mà tôi làm theo là rằng nếu đối số là cần thiết, xem xét sử dụng con đường, nếu đối số là không bắt buộc, luôn luôn sử dụng đối số chuỗi truy vấn.

+0

Đó khá nhiều bao gồm quan điểm của tôi là tốt. –

+0

+1 Đồng ý, đó là lựa chọn tốt nhất. –

1

Có phương pháp kinh điển nào để xác định điều gì xảy ra ở đâu trong MVC hay chỉ thực sự là tùy thuộc vào nhà phát triển?

Tùy thuộc vào bạn.

MVC là về tổ chức/luồng mã phía máy chủ của bạn và phân tách chế độ xem từ lớp doanh nghiệp, không quá nhiều về tham số truy vấn.

-1

Đó là khá nhiều tùy thuộc vào nhà phát triển. Tôi sẽ nói đặt pageSize trong URL.

6

Một nguyên tắc nhỏ mà tôi làm theo là nếu đối số là bắt buộc, hãy xem xét sử dụng đường dẫn, nếu đối số là tùy chọn, hãy luôn sử dụng đối số chuỗi truy vấn.

Nhìn chung, tôi muốn dính vào bất kỳ điều gì làm cho url trông dễ đọc hơn.

Trang web này đặt nó trong chuỗi truy vấn: https://stackoverflow.com/questions?page=2&pagesize=30

3

Vâng, nó rõ ràng là tùy thuộc vào bạn. Tuy nhiên, bạn đang thiết kế một giao diện RESTful được cho là có thể đọc được. Chuỗi truy vấn là tốt hơn nhiều trong vấn đề đó. Nếu không, bạn đang nhìn vào hai con số mà thực sự có thể là bất cứ điều gì. Và ai sẽ nhớ thứ tự?

0

Bạn cũng có thể xem xét những điều sau

Format

http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize} 

Ví dụ

http://mydomain.com/books/thriller/page/3/results/25 
+0

Nhưng sau đó, "trang" và "kết quả" về cơ bản là các giá trị tuyến đường throwaway. Tôi không thích cruft. –

+0

Tôi đồng ý, nhưng tôi không thấy nó khác gì so với sử dụng chuỗi truy vấn. Nó trông đẹp hơn. – bret

+1

Nó khác nhau vì ngữ nghĩa. ? page = 4 chắc chắn nhất định rằng trang đang được yêu cầu là 4./page/4/không nhất thiết phải truyền đạt điều đó. Điều này đặc biệt như vậy với nhiều giá trị không nhất thiết phải phân cấp như "trang" và "kết quả". "kết quả" không phải là tập hợp con hoặc "trang", cũng không phải ngược lại; IMO, họ đang ở trên cùng một "cấp bậc" của phân cấp, và thể hiện chúng trong đường dẫn, với tôi, gây ra một số loại phân cấp không tồn tại. –

Các vấn đề liên quan