2010-09-08 43 views
0

我正在开发一个Web应用程序,显示美国各地本地商店的销售情况。所列的销售和商店因地点而异。是否存在用于描述此信息并避免重复内容的RESTful URL方案?用于显示本地数据的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。有解决方案吗?

回答

0

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

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

/stores/name/lat+long指的是资源独特,而可选查询参数提供了你需要为你的面包屑回原来的搜索的额外信息。

如果您的链接来自某个地方,而不是搜索该邮政编码,那么您可以关闭查询参数。当缺少查询参数时,默认为链接回最接近的邮政编码,或完全关闭面包屑链接。

另一种选择是只让浏览器历史记录为你做这个,用JavaScript用户导航到上一个页面在他们的历史:

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