Подтвердить что ты не робот

Правильный отформатированный URL-адрес REST с диапазонами дат

У меня есть URL REST, чтобы все пользователи отформатировались следующим образом:   http://example.com/users

Чтобы получить отдельного пользователя по id:   http://example.com/users/12345

Чтобы получить все пользовательские ставки:   http://example.com/users/12345/bids

Чтобы получить все пользовательские ставки между двумя датами:   http://example.com/users/12345/bids/?start=01/01/2012&end=01/31/2012

или должно быть так:   http://example.com/users/12345/bids/start/01012012/end/01312012

Я склоняюсь к URL-адресу 1-го диапазона даты, так как начало и конец не являются сущностями в домене. Каков правильный способ форматирования URL-адреса REST с диапазоном дат?

Спасибо,

Tom

4b9b3361

Ответ 1

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

Введите параметры запроса на том же уровне, что и ставки (удалите косую черту перед вопросительным знаком). Но вы, вероятно, захотите получить поддержку, если они предоставляют только один параметр запроса. Поэтому, если они предоставили только "старт", после этого он получит все ставки после этой даты или если они предоставят только "конец", он получит все ставки до этой даты.

Причиной является то, что параметры запроса хороши для GETting подмножества результатов из запроса GET. Они не идут на другой уровень, потому что следующим уровнем обычно является один конкретный элемент с уникальным идентификатором.

Ответ 2

Я бы пошел с http://example.com/users/12345/bids?start=2012-01-01&end=2012-01-31.

  • В строке запроса не должно быть косой черты.
  • Избегайте использования косой черты в строке запроса. Это будет проще.

Ответ 3

Если example.com/users/12345 получает пользователя с идентификатором 12345, то для того, чтобы получить всех пользователей по id, он должен быть example.com/users с идентификатором, включенным в ответ в качестве отношения. (обычно это гиперссылка на этот ресурс).

Теперь, чтобы получить их по диапазонам дат, это должно быть example.com/users/start=01-01-2012&end=01-31-2012

Часть 12345 - это идентификатор отдельного пользователя, это ресурс, поэтому его не следует включать, чтобы получить остальных пользователей.

Как имя параметра, оно должно быть значимым. начало могло означать что угодно, но start_date более выражен.