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

OpenAPI spec: default value of query param is ignored

我将 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

而不是 0 如果 GET 请求中未提供参数,我会收到 null。 据我了解应该是

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

是bug还是我做错了什么?

我终于找到了解决方案:在 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