用于显示本地数据的RESTful URL结构

时间:2010-09-08 21:18:31

标签: url rest geolocation latitude-longitude

我正在开发一个网络应用程序,显示美国各地本地商店的销售情况。列出的销售和商店因地点而异。是否有用于描述此信息的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。有解决方案吗?

1 个答案:

答案 0 :(得分:0)

将该信息添加为可选的查询参数。

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

/stores/name/lat+long唯一地表示资源,而可选的查询参数为您的面包屑提供了原始搜索所需的额外信息。

如果您的链接来自搜索该邮政编码以外的其他位置,则可以将查询参数保留为关闭状态。缺少查询参数时,默认链接回最近的邮政编码,或完全关闭面包屑链接。

另一种选择是让浏览器历史记录为您执行此操作,方法是使用JavaScript将用户导航到其历史记录中的上一页:

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