據說在一個定義良好的RESTful系統中,客戶端只需要知道根URI或幾個衆所周知的URI,並且客戶端應該通過這些初始URI發現所有其他的鏈接。我明白這個方法的好處(解耦客戶端),但對我的缺點是,客戶端需要發現鏈接的每個嘗試訪問的東西,即給定資源的層次結構如下時間:連通性和HATEOAS
/collection1
collection1
|-sub1
|-sub1sub1
|-sub1sub1sub1
|-sub1sub1sub1sub1
|-sub1sub2
|-sub2
|-sub2sub1
|-sub2sub2
|-sub3
|-sub3sub1
|-sub3sub2
如果我們按照「客戶端只需要知道根URI」的方法,那麼客戶端應該只知道上面的根URI(即/ collection1),其餘的URI應該由客戶端通過超媒體鏈接來發現。我覺得這很麻煩,因爲每次客戶端需要做一個GET時,比如在sub1sub1sub1sub1上,如果客戶端首先在/ collection1上執行GET,並在返回的表示中定義後續鏈接,然後在子資源上執行多個GET以達到期望的資源?還是我對連通性的理解完全錯誤?
最好的問候, 蘇雷什
只是REST服務是無狀態的,客戶端不是。因此,客戶可以記住以前的資源,它們的URL等等,例如通過嵌套的導航菜單... – inf3rno 2013-11-15 04:04:19