2009-11-11 8 views
7

Каким будет принятое соглашение о отображении диапазона дат в дружественном URL-адресе?URL-соглашение для диапазона дат

Например, в приложении для отслеживания времени. Вместо того, чтобы использовать первичный ключ базы данных для определенного периода оплаты в URL-адресе, я хотел бы использовать что-то более легко различимое для пользователя.

http://www.mytimesheet.com/11-1-2009-11-14-2009 
http://www.mytimesheet.com/period-beginning-11-1-2009 

Ни один из них, похоже, не отрезал его, но, возможно, я просто чрезмерно критичен.

+0

Почему этот MVC связан? – skaffman

+0

Это не специально, поэтому тег удален. –

ответ

7

Рассматривали ли вы дату в формате ISO, особенно в их компактной форме: YYYYMMDD, то это должно быть возможно иметь:

http://example.com/dates/20091101/20091131 

В частности, я не думаю, что есть какой-либо приняла конвенции для этого.

Edit: это о маршрутизации, а также ...

+0

Это похоже на самое чистое решение, которое я видел, и самое простое вне строки запроса. –

+2

+1. Может включать '-'s, если вы хотите; если вы используете дефисы, вы должны всегда использовать ISO8601 YYYY-MM-DD. – bobince

0

Лично я думаю, что это своего рода данных, которые лучше всего публикуемую, а не используется для указания маршрута.

(иногда, если решение кажется сломаны таким образом, то, возможно, этот подход является неправильным.)

Однако, если вы действительно хотите, чтобы указать даты, возможно, вам следует рассмотреть формат, который, скорее всего, следует понимать, последовательным образом во всех культурах, таких как гггг-ммм-дд (например, 2009-ноябрь-11)

+1

POST выглядит очень плохой идеей здесь, так как это сильно нарушит любой пользовательский интерфейс (без закладок, без перезагрузки без анонимного всплывающего окна, если вообще, без кнопки возврата). Запрос GET намного лучше для ..., ну, запросы. Используйте только POST, когда вы что-то меняете (например, обновляете запись базы данных), что не следует делать дважды. – falstro

+1

Также не отправляйте URL-адрес другу/коллеге/etc через мгновенный обмен сообщениями или электронной почтой, это то, что действительно меня беспокоит. :) – falstro

1

Я либо использовать что-то вроде:

http://www.mytimesheet.com/start/11-1-2009/end/11-14-2009 

или

http://www.mytimesheet.com?start=11-1-2009&end=11-14-2009 

Но что, по словам Даниэля, вы можете преобразовать это в сообщение, чтобы скрыть его вообще, если это возможно.

2

Я бы сказал, что это до вас, но мне нравится идея

http://foo.com/bar/from/2008/ 
http://foo.com/bar/from/2008/10/ 
http://foo.com/bar/from/2008/10/02 

Или, может сочетаться с чем-то вроде /between/2008/10/2009/10 и тому подобное.

+0

Я предпочитаю этот метод, так как он делает адрес более «читаемым человеком/исследуемым» –

+0

Я хотел бы предложить альтернативное предпочтение: 'http://foo.com/bar/from/2014-09- 01/'. Это означает дату, аналогичную письменной форме. Вы бы сказали, что это более читаемо для человека? – Glycerine