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

Ser*_*nov 6 swagger openapi openapi-generator

我将 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
Run Code Online (Sandbox Code Playgroud)

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

@Valid @RequestParam(value = "page", required = false) Integer page
Run Code Online (Sandbox Code Playgroud)

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

@Valid @RequestParam(value = "page", required = false, defaultValue = "0") Integer page
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*nov 14

最后我找到了解决方案:在 OpenAPI 3.x 中,必须在参数的schema. 换句话说,而不是

    parameters:
      - name: page
        in: query
        default: 0
        description: Page number
        schema:
          type: integer
Run Code Online (Sandbox Code Playgroud)

它应该是

    parameters:
      - name: page
        in: query
        description: Page number
        schema:
          type: integer
          default: 0
Run Code Online (Sandbox Code Playgroud)