OpenAPI 规范:查询参数的默认值被忽略

问题描述 投票:0回答:1

我将 OpenAPI 3 规范中的参数描述为

review_requests:
  get:
    tags:
      - dashboard
    operationId: reviewRequests
    parameters:
      - name: page
        in: query
        default: 0
        description: Page number
        schema:
          type: integer
    responses:
      200:
        description: OK

编译后,我发现 Java 代码中缺少默认值,并且参数实际上描述如下:

@Valid @RequestParam(value = "page", required = false) Integer page

如果 GET 请求中未提供参数,我会收到

0
,而不是
null
。 据我了解应该是

@Valid @RequestParam(value = "page", required = false, defaultValue = "0") Integer page

这是一个错误还是我做错了什么?

swagger openapi openapi-generator
1个回答
18
投票

最后,我找到了解决方案:在OpenAPI 3.x中,必须在参数的

schema
中指定默认值。换句话说,而不是

    parameters:
      - name: page
        in: query
        default: 0
        description: Page number
        schema:
          type: integer

应该是

    parameters:
      - name: page
        in: query
        description: Page number
        schema:
          type: integer
          default: 0
© www.soinside.com 2019 - 2024. All rights reserved.