REST可发现性和HATEOAS是否意味着您可以更改URI?

时间:2011-11-13 00:23:26

标签: rest uri restful-url hateoas discoverability

我正在尝试澄清与REST可发现性相关的概念 - 即是否满足RESTful服务的HATEOAS约束意味着现在URI可以更改,因为它们是可发现的并且没有记录。

这似乎不遵循Cool URIs的概念 - URI永远不会改变的事实。它与网络本身的模型(REST应该基本上完全适合)有点不一致 - 这个URL是可收藏的,永远不会改变的事实,而且你曾经学过一个这样的事实,你可以直接进入它,你可以做到这一点不必经过根,每次都发现它。

对此有任何反馈意见。

2 个答案:

答案 0 :(得分:6)

对于酷URI,不 - 你永远不应该改变它们。它们是您系统的入口点。但是,如果您希望将来能够发展系统的其他URI结构,那么您应该只有很少的。

对于任何非酷URI,它们确实可以随时间变化。我最近写了一篇关于这个主题的blog post,因为我发现REST能够让我随着时间的推移不断发展我的系统,这非常有用。

确保您的API文档明确说明您的系统中只有少数Cool URI应该由客户端进行硬编码,并且应该在运行时通过超媒体遍历发现任何其他URI。把它们想象成一个C指针地址:没有人会关心指针变量的十六进制值是什么,但是他们肯定会希望它指向内存中的有效位置。您的非酷URI也是如此 - 它们的结构并不重要,但它们是在运行时通过与服务器的对话检索它们的事实使它们有效。

答案 1 :(得分:0)

必须有文件。 MediaTypes和Link Relations是一个耦合点,客户端和服务器都必须理解这一点。这就是为什么HTML,ATOM和RSS都有标准的原因。

就运行时功能而言,我可以看到没有文档。我不需要知道雅虎在其主页上的内容,因为我可以发现它。我的服务客户端也不需要了解我发布的新功能。他们可以找到存在的链接,然后使用链接关系来查看它的作用。

因此,文档是围绕要使用的标准和协议,而不是应用程序如何自行运行