首页 > 解决方案 > OpenAPI 3 链接。它们有什么用?

问题描述

我花了很多时间试图弄清楚 OpenAPI 链接可以用于什么以及它们如何与响应正文中的超媒体链接相关,这让我很头疼!
假设下面的简单类模型代表了我们为其定义了 OpenAPI 规范的业务域,该规范提供了导航各种类实例的路径。

示例类图

例如,如果我执行 /borrowers/{id} 的获取,我希望响应包含 Borrower 的属性和遵循 R1 或 R2 以获取相关 Book 实例集的方法。在 OpenAPI 3 之前,我会构建相关路径的链接,例如 /borrowers/{id}/loaned-books 或 /borrowers/{id}/reserved-books 并将它们作为属性(超链接)包含在响应正文的定义中。在运行时,如果我跟随这些超链接,我会得到一个相关书籍的数组,每本书都有其他超链接。
所以 OpenAPI Link 问题是:

  1. 它们是否可以替代在响应中生成超链接的需要?我不这么认为,但在这种情况下
  2. 运行时表达式语言 (REL) 的用途是什么?
  3. 它们只是在 API 规范中定义超链接的一种方式吗?可能,但在哪种情况下响应正文定义仍需要包含这些链接的属性?大概他们的值仍然需要在服务器上创建实际的超链接?
  4. 鉴于 REL 不允许通配符,当响应是一个资源数组时如何定义链接,每个资源都有一个 id 供下一个操作使用?

    任何帮助解释链接将不胜感激。

标签: hyperlinkopenapi

解决方案


推荐阅读