我将 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
这是一个错误还是我做错了什么?
最后,我找到了解决方案:在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