有人可以解释我为什么会出错
不允许在路径中查询字符串
我使用OpenApi 3.0.1,并遵循本文档,其中描述了这部分代码。因此,不应出现此错误,但为什么呢?
/posts/{postid}?offset=0&limit=5:
get:
tags:
- posts
summary: example
description: 'example text'
operationId: getComments
parameters:
- name: postId
in: path
description: Post id
required: true
schema:
type: string
- name: offset
in: query
schema:
type: integer
description: The number of items to skip before starting to collect the result set
required: false
- in: query
name: limit
schema:
type: integer
description: The numbers of items to return
required: false
responses:
200:
description: example desc
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ResponseData'
422:
description: Unprocessable entity
content: {}
谢谢。
答案 0 :(得分:1)
您应该写:
/posts/{postid}
代替
/posts/{postid}?offset=0&limit=5:
参数部分中的offset和limit的定义足以知道它们是查询参数,因为它们已经包含属性in: query
。
如果您查看https://swagger.io/docs/specification/describing-parameters/,并不是说您应该像在swagger规范的paths部分中那样添加查询字符串。 (可能令人困惑的是,显示了一些包含查询字符串的GET请求,这可能使您误以为您应该按照大摇大摆的规范编写查询字符串。)