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

发布于 2025-02-03 01:30:01 字数 794 浏览 2 评论 0 原文

我已经将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 i接收 null 如果未在获取请求中提供参数。 据我所知,应该

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

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

I've described a param within an OpenAPI 3 spec as

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

After compilation I see that the default value is missing from Java code and the param is actually described like:

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

and instead of 0 I receive null if the param is not supplied in GET request.
As far as I understand it should be

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

Is it a bug or am I doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生生不灭 2025-02-10 01:30:01

最后,我找到了解决方案:在 OpenAPI 3.x ,必须在参数的架构中指定默认值。换句话说,

    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

Finally, I've found the solution: in OpenAPI 3.x, the default value must be specified within the parameter's schema. In other words, instead of

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

it should be

    parameters:
      - name: page
        in: query
        description: Page number
        schema:
          type: integer
          default: 0
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文