OpenApi文件与多个/连续$ref元素的路径是给重复的映射键



我有以下OpenAPI文件,我的意图是在自己的yaml文件中定义员工,客户,项目端点。然而,使用下面的代码会导致'复制映射键'错误-这是因为使用'$ref'(连续)。有办法实现这种隔离吗?

openapi: 3.0.3
info:
title: example  
servers:
- url: https://example.net/api
security:
- apiKey: []
paths:
$ref: './employee/resource.api.yaml'
$ref: './projects/resource.api.yaml'
$ref: './customers/resource.api.yaml'

更新文件内容:员工/resource.api.yaml

/employee/{id}
get:
...
/employee/{id}/addresses
get:
...

项目/resource.api.yaml

/projects/{id}
get:
...
put:
...
/projects/{id}/files
get:
...
/projects/{id}/fies/{fileName}/Content
get:
...

paths节点本身不支持$ref。你只能引用单个路径的内容:

paths:
/employee/{id}:
$ref: './employee/employeeById.yaml'
/projects/{id}:
$ref: './project/projectById.yaml'

员工/employeeById.yaml:

get:
operationId: ...
summary: ...
...

项目/projectById.yaml:

get:
operationId: ...
summary: ...
...
put:
operationId: ...
summary: ...
...

或者,如果您想保留当前的resource.api。如果是Yaml文件,则$refs看起来如下所示。有关#/...指针如何在$ref值中编码的解释,请参阅此回答。

paths:
/employee/{id}:
$ref: './employee/resource.api.yaml#/employee~1%7Bid%7D'
/employee/{id}/addresses:
$ref: './employee/resource.api.yaml#/employee~1%7Bid%7D~1addresses'
/projects/{id}:
$ref: './project/resource.api.yaml#/projects~1%7Bid%7D'

最新更新