2012-03-09 33 views
46

Tôi đã một URL REST để nhận tất cả người dùng được định dạng như thế này: http://example.com/usersđúng REST của định dạng URL với phạm vi ngày

Để có được một người dùng cá nhân bằng id: http://example.com/users/12345

Để có được ðặt giá của người dùng: http://example.com/users/12345/bids

Để có được ðặt giá của người dùng giữa hai thời điểm: http://example.com/users/12345/bids/?start=01/01/2012&end=01/31/2012

hoặc phải như sau: http://example.com/users/12345/bids/start/01012012/end/01312012

Tôi nghiêng về URL phạm vi ngày 1 là bắt đầu và kết thúc không phải là thực thể trong miền. Cách thích hợp để định dạng một URL REST với phạm vi ngày là gì?

Cảm ơn,

Tom

+2

Tôi khuyên bạn nên đặt ngày theo định dạng ISO 8061: 2012-01-31. Điều này tránh sự không chắc chắn về việc đó là tháng-ngày-năm hay ngày-tháng-năm. –

Trả lời

50

http://example.com/users/12345/bids?start=01-01-2012&end=01-31-2012

Có tham số truy vấn vào "mức độ" tương tự như hồ sơ dự thầu (loại bỏ các dấu gạch chéo trước dấu chấm hỏi). Nhưng có thể bạn sẽ muốn được hỗ trợ nếu họ chỉ cung cấp một tham số truy vấn. Vì vậy, nếu họ chỉ cung cấp "bắt đầu" thì nó sẽ nhận được tất cả giá thầu sau ngày đó hoặc nếu họ chỉ cung cấp "kết thúc", nó sẽ nhận được tất cả giá thầu trước ngày đó.

Lý do là các tham số truy vấn là tốt cho việc GET một tập con các kết quả từ một yêu cầu GET. Họ không đi trên một cấp độ khác bởi vì cấp độ tiếp theo thường là một mục cụ thể với một định danh duy nhất.

6

tôi sẽ đi với http://example.com/users/12345/bids?start=2012-01-01&end=2012-01-31.

  • Không được có dấu gạch chéo trước chuỗi truy vấn.
  • Tránh sử dụng dấu gạch chéo trong chuỗi truy vấn. Nó sẽ dễ dàng hơn theo cách đó.
+1

thì có lẽ cũng nên sử dụng định dạng ngày có thể đọc được quốc tế, sẽ là '2012-01-31' theo https://en.wikipedia.org/wiki/ISO_8601. 'MDY' là nghĩa đen chỉ ở Hoa Kỳ ..... https://en.wikipedia.org/wiki/Date_format_by_country – Blauhirn

0

nếu example.com/users/12345 lấy người dùng có id 12345, sau đó để có được tất cả người dùng theo id, đó phải là example.com/users với id được bao gồm trong phản hồi dưới dạng mối quan hệ. (thường là một siêu liên kết đến tài nguyên đó).

Bây giờ để có được chúng bằng cách phạm vi ngày nó phải được example.com/users/start=01-01-2012 & cuối = 01-31-2012

Phần 12345 là id của một người dùng cá nhân, đó là một tài nguyên, do đó nó không nên được bao gồm để có được phần còn lại của người dùng.

Vì tên của tham số nên có ý nghĩa. bắt đầu có thể có nghĩa là bất cứ điều gì, nhưng start_date là có ý nghĩa hơn.

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