我們正在研究基於REST的服務,並且我們正在使用Spring MVC。我們正面臨一個解決方法問題的網址。這大概就是我們正在嘗試做的區分URL和路徑參數
假設我們有自己的寵物
//Class level request mapping
@RequestMapping("/persons")
// Mapping to access a specific person inside one of the methods
@RequestMapping(value="/{personId}", method= RequestMethod.GET
//.... getPerson method
// Mapping to access a specific person's pets inside one of the methods
@RequestMapping(value="/{personId}/pets", method= RequestMethod.GET
// getPersonPets method
人如果請求當屬「/人/ P12323233」,其中P12323233是人的ID,它解析爲getPerson方法。 如果請求以「/ persons/P12323233/pets」的形式出現,其中P12323233是person id,則它將解析爲getPersonPets方法。
所以一切都很好,直到現在。但是 如果請求以「/ persons/pets」的形式出現,請求會解析爲getPerson方法。雖然我們可以在getPerson方法中將其作爲一個錯誤情況處理,但我們試圖檢查是否有解決此問題的方法getPersonPets方法。
我們仍在爭論來處理這種情況的正確的地方是否是getPerson或getPersonPets方法。這樣的爭論不談,我們想知道它是否能達到該getPersonPets方法解決,甚至在技術上具有可行性。
感謝任何幫助
的URL映射清楚的第一種方法。所以如果''「寵物」是一個人的現有ID,它應該返回這個人。如果不是,它應該返回一個404 Not Found錯誤。調用'getPersonPets()'沒有什麼意義,並且無論如何你都不能返回任何有用的東西,因爲你沒有任何人的ID來找到寵物。我會立即結束辯論:) –
它是有道理的,當有一個網址/個人/寵物它會嘗試調用第一個方法,並會嘗試找到身份證「寵物」的人。如果它沒有找到,它會給出404。在這種情況下,第二種方法將永遠不會執行。 thnx的寶貴意見。 – user2707141