2014-08-30 79 views
2

我目前還不熟悉RESTful架構並使用Jersey進行練習。我面臨的困難,在執行GET operation.following REST命名/ URL約定從服務器獲取特定的客戶將被REST GET設計問題

GET http://www.example.com/customers/33245

但是在設計客戶端如何將客戶端知道特定ID屬於那因爲它將在與服務器鏈接的數據庫中並且隱藏於客戶端。我想到的一個實現是從數據庫中提取有關所有客戶的所有信息並存儲在客戶端中,但我相信它會殺死整個目的。什麼應該是搜索特定客戶的最佳方式。

回答

3

這樣的URL用於獲取您已知的客戶。不適用於搜索客戶。

對於搜索的客戶,您通常使用的URL像

http://www.example.com/customers?name=Doe&firstname=John 

這將列出所有名爲John Doe的客戶,並且該列表將包含,爲每一位客戶,找到客戶的ID。然後,客戶端將使用此ID來調用問題中的URL並獲取有關此客戶的詳細信息。

您當然可以使用任何您想要的查詢條件,或允許通過其他方式訪問客戶。

如果你仔細想一想,那就是網絡搜索工作。您不知道網頁的網址,您可以通過Google上的關鍵字搜索此頁面,該關鍵字返回包含頁面標題,說明和網址的結果列表,然後使用該網址實際訪問該頁面。

+0

我只是補充說,這是一個更好的做法,即向每個名爲John Doe的客戶返回一個URL列表,而不是一個ID列表。這樣客戶端甚至不需要創建URL就可以使用服務器創建的內容。 – shieldstroy 2014-09-02 02:49:16