我可以这样做:
parameters:
avatarSizeParam:
name: size
in: query
description: Size of avatar.
enum: [32, 64]
required: false
type: integer
format: int32
paths:
/my/path/avatar:
get:
parameters:
- $ref: '#/parameters/avatarSizeParam'
好。 Swagger定义了一个parameters
键,您可以在其中定义Parameter Objects
重复使用。它还定义了一个responses
键,您可以在其中定义Response Objects
这样:
responses:
notFoundResponse:
description: Entity not found.
schema:
$ref: '#/definitions/schema404'
所以我假设我可以将以前的路径定义扩展到以下
paths:
/my/path/avatar:
get:
parameters:
- $ref: '#/parameters/avatarSizeParam'
responses:
- $ref: '#/responses/notFound'
然而,这似乎并不奏效。我回到the spec寻找Operations Object
并注意到parameters
可以是参考对象,但responses
不能。
如果允许响应定义对象(responses
在最顶层),有什么意义呢?
你不能参考那里的物品?有办法吗?
答案 0 :(得分:18)
如果看到here,则必须将HTTP状态代码定义为密钥,然后正确的语法为:
paths:
/my/path/avatar:
get:
parameters:
- $ref: '#/parameters/avatarSizeParam'
responses:
404:
$ref: '#/responses/notFound'