bra*_*ipt 72 swagger swagger-2.0 openapi
假设我有一个类似的参数limit.这个地方到处都是用的,如果我需要更新它,就必须在任何地方进行更改:
parameters:
- name: limit
in: query
description: Limits the number of returned results
required: false
type: number
format: int32
Run Code Online (Sandbox Code Playgroud)
我可以使用$ ref在别处定义它并使其可重用吗?我遇到了这张票,暗示有人想改变或改进功能,但我不知道它是否已经存在于今天?
Ron*_*Ron 121
此功能已存在于Swagger 2.0中.链接的票证谈论它的一些特定机制,这不会影响此功能的功能.
在顶级对象(称为Swagger对象)中,有一个parameters属性,您可以在其中定义可重用参数.您可以为参数指定任何名称,并从路径/特定操作中引用它.顶级参数只是定义,不会自动应用于规范中的所有操作.
你可以在这里找到一个例子 - https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/resources/reusableParameters.json - 即使有一个限制参数.
在你的情况下,你想要这样做:
# define a path with parameter reference
/path:
get:
parameters:
- $ref: "#/parameters/limitParam"
- $ref: "#/parameters/offsetParam"
# define reusable parameters:
parameters:
limitParam:
name: limit
in: query
description: Limits the number of returned results
required: false
type: integer
format: int32
offsetParam:
name: offset
in: query
description: Offset from which start returned results
required: false
type: integer
format: int32
Run Code Online (Sandbox Code Playgroud)
mil*_*lan 15
为了完整起见,这是在OpenAPI(又名swagger v3)中的样子:
openapi: "3.0.0"
servers:
- url: /v1
description: local server
paths:
/path:
get:
parameters:
- $ref: "#/components/parameters/limitParam"
components:
parameters:
limitParam:
name: limit
in: query
description: Limits the number of returned results
required: false
schema:
type: integer
minimum: 10
default: 10
multipleOf: 10 # matches 10, 20, ...
format: int32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38851 次 |
| 最近记录: |