首页 > 解决方案 > OpenAPI 对一个端点下的多个动词的引用

问题描述

在编写代码之前,我正在采用创建您的 API 文档的方法,而且我对 OpenAPI 规范还很陌生。

这是我openapi.yaml文件的一部分:

paths:
  /player/{playerId}:
    get:
      $ref: paths/player/get.yaml
    put:
      $ref: paths/player/put.yaml
    patch:
      $ref: paths/player/patch.yaml

这对我来说完全有意义,但由于某种原因,它不受支持?我想将动词保存在单独的文件中。有没有人有什么建议?为帮助干杯!

标签: yamlopenapiendpoint

解决方案


我不认为这是可能的。$ref仅在规范明确提到支持 $ref 时才受支持。

在您的情况下,https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#operationObject是有趣的对象。它没有列出 $ref,因此很遗憾它不受支持。

您可以做的是$ref在路径级别(https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#pathItemObject):

这看起来像这样:

paths:
  /player/{playerId}:
    $ref: paths/player/playerId.yaml

playerId.yaml这样:

get:
  # content of paths/player/get.yaml

put:
  # content of paths/player/put.yaml
 
patch:
  # content of paths/player/patch.yaml

推荐阅读