不允许在路径中大幅度查询字符串

时间:2019-05-23 08:48:58

标签: swagger

有人可以解释我为什么会出错

  

不允许在路径中查询字符串

我使用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: {}

谢谢。

1 个答案:

答案 0 :(得分:1)

您应该写:

/posts/{postid}

代替

/posts/{postid}?offset=0&limit=5:

参数部分中的offset和limit的定义足以知道它们是查询参数,因为它们已经包含属性in: query

如果您查看https://swagger.io/docs/specification/describing-parameters/,并不是说您应该像在swagger规范的paths部分中那样添加查询字符串。 (可能令人困惑的是,显示了一些包含查询字符串的GET请求,这可能使您误以为您应该按照大摇大摆的规范编写查询字符串。)