是否可以将多个参数分组以在多个路径中引用它们?
例如,我在每个路线中都需要一组参数。它们被定义为全局参数。我该如何分组呢?
我想到这样的定义:
parameters:
MetaDataParameters:
# Meta Data Properties
- name: id
in: query
description: Entry identification number
required: false
type: integer
- name: time_start
in: query
description: Start time of flare
required: false
type: string
- name: nar
in: query
description: Active region number
required: false
type: string
然后在我的路线中引用整个小组:
/test/:
get:
tags:
- TEST
operationId: routes.test
parameters:
- $ref: "#/parameters/MetaDataParameters"
responses:
200:
description: OK
Swagger 2.0可以实现吗?
答案 0 :(得分:10)
目前Swagger无法做到这一点(版本2.0)。我已经为此打开了一个功能请求,建议用于下一个版本:
答案 1 :(得分:0)
您可以将 $ref
指向中间的 .yaml
文件,如下所示:
//middle.yaml <-----
- $ref: 'Defaul.yaml#/components/parameters/meta_id'
- $ref: 'Defaul.yaml#/components/parameters/meta_time_start'
- $ref: 'Default.yaml#/components/parameters/meta_nar'
您的 Default.yaml
文件应该是这样的:
//Default.yaml <-----
components:
parameters:
meta_id:
name: id
in: query
description: Entry identification number
schema:
type: integer
example: 1
meta_time_start:
name: time_start
in: query
schema:
type: string
最后,你的主文件应该是这样的:
/test/:
get:
tags:
- TEST
operationId: routes.test
parameters:
$ref: "../parameters/middle.yaml" <---- external yaml file
responses:
200:
description: OK
注意:您的 $ref
应该没有 -
。就像我的例子