据说,在一个定义良好的 RESTful 系统中,客户端只需要知道根 URI 或少数几个众所周知的 URI,客户端将通过这些初始 URI 发现所有其他链接。我确实理解这种方法的好处(解耦客户端),但对我来说缺点是客户端每次尝试访问某些东西时都需要发现链接,即给定以下资源层次结构:
/collection1
collection1
|-sub1
|-sub1sub1
|-sub1sub1sub1
|-sub1sub1sub1sub1
|-sub1sub2
|-sub2
|-sub2sub1
|-sub2sub2
|-sub3
|-sub3sub1
|-sub3sub2
如果我们遵循“客户端只需要知道根 URI ”的方法,那么客户端应该只知道根 URI,即上面的 /collection1,其余的 URI 应该由客户端通过超媒体链接发现。我发现这很麻烦,因为每次客户端需要执行 GET 时,例如在 sub1sub1sub1sub1 上,客户端是否应该首先在 /collection1 上执行 GET 并在返回的表示中定义以下链接,然后对子资源执行更多 GET 以到达想要的资源?还是我对连通性的理解完全错误?
最好的问候, 苏雷什