2010-09-08 42 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>