到目前为止,创建的 API 是相当基本的,但是只要使用它的客户机知道 API 的 URL 模式,它就可以工作。例如,客户端可能被硬编码,知道它可以向 /design/recent 接口发出 GET 请求来获得最近创建的 tacos 列表。同样地,它可能是硬编码的,以知道它可以将该列表中的任何 taco 的 ID 附加到 /design 接口中,以获得特定 taco 资源的 URL。
使用硬编码的 URL 模式和字符串操作在 API 客户机代码中很常见。但是请想象一下,如果 API 的 URL 模式改变了,会发生什么。硬编码的客户端代码相对于 API 已经过时了,因此会被破坏。硬编码 API url 并在其上使用字符串操作会使客户端代码变得兼容性弱。
超媒体作为应用程序状态的引擎(HATEOAS),是一种创建自描述 API 的方法,其中从 API 返回的资源包含到相关资源的链接。这使客户机能够在对 API 的 url 了解最少的情况下引导 API。相反,它理解 API 提供的资源之间的关系,并在遍历这些关系时使用对这些关系的理解来发现 API 的 url。