Структура RESTful URL для отображения локальных данных - PullRequest
0 голосов
/ 09 сентября 2010

Я занимаюсь разработкой веб-приложения, которое отображает продажи в местных магазинах по всей территории США.Перечисленные продажи и магазины различаются в зависимости от местоположения.Существует ли схема RESTful URL для описания этой информации, при этом избегая дублирования контента?

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

/stores/zip          - list stores near zip, with links to particular stores
/store/name/lat+long - list items at a particular store

Возникла проблема.На странице /store/name/lat+long должна быть ссылка на список магазинов, но какой почтовый индекс выбрать?Скажем, он выбирает почтовый индекс, ближайший к координате lat + long.Пользователь может прийти на определенную страницу магазина по ссылке на /stores/zipA, но страница магазина может отослать его обратно к немного другому списку, /stores/zipB.

Мы могли бы решить эту проблему с помощью почтового индексаинформация вперед.Таким образом, список на /stores/zip может ссылаться на /store/name/lat+long/zip.Однако это не логично, потому что вся информация, необходимая для идентификации хранилища, обеспечивается координатой lat + long;почтовый индекс является избыточным.Фактически, у того же содержимого страницы будут дублирующиеся URL-адреса.

Другим решением будет сохранение последнего просмотренного почтового индекса в виде файла cookie, но это не RESTful.Есть ли решение?

1 Ответ

0 голосов
/ 09 сентября 2010

Добавьте эту информацию в качестве необязательного параметра запроса.

/stores/name/lat+long?search=zip

/stores/name/lat+long представляет ресурс уникальным образом, в то время как необязательный параметр запроса предоставляет дополнительную информацию, необходимую для вашей крошки, обратно в исходный поиск.

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

Другой вариант - просто позволить истории браузера сделать это за вас, используя JavaScript для перехода пользователя на предыдущую страницу в своей истории:

<a href="javascript:history.back()">Back to search</a>
...