我正在开发一个网络应用程序,显示美国各地本地商店的销售情况。列出的销售和商店因地点而异。是否有用于描述此信息的RESTful URL方案,同时避免重复内容?
具体来说,应用程序需要列出本地商店,并列出在特定商店销售的商品。 Zip(邮政)代码似乎是一种引用位置的便捷方式,因此请考虑以下方案:
/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。有解决方案吗?
答案 0 :(得分:0)
将该信息添加为可选的查询参数。
/stores/name/lat+long?search=zip
/stores/name/lat+long
唯一地表示资源,而可选的查询参数为您的面包屑提供了原始搜索所需的额外信息。
如果您的链接来自搜索该邮政编码以外的其他位置,则可以将查询参数保留为关闭状态。缺少查询参数时,默认链接回最近的邮政编码,或完全关闭面包屑链接。
另一种选择是让浏览器历史记录为您执行此操作,方法是使用JavaScript将用户导航到其历史记录中的上一页:
<a href="javascript:history.back()">Back to search</a>