据说在一个定义良好的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