【问题标题】:Swagger API "required" - how much is this required?Swagger API“必需” - 这需要多少?
【发布时间】:2015-12-28 19:54:52
【问题描述】:

我已经使用此规范创建了一个Swagger(在 nodejs/express 上)测试 API(仅相关部分):

...
parameters:
  - name: name
    in: query
    required: true
    type: string
...

但是我可以调用带有空参数的url,例如

http://localhost/test?name=

它可以正常工作,不会抛出异常或任何其他迹象。为什么?

【问题讨论】:

    标签: node.js api express swagger


    【解决方案1】:

    如果我通过 curl 或 postman 从终端进行类似的调用,它也可以正常工作。我从请求对象中解析查询,发现在这种情况下,查询参数被解释为空字符串。

    通过 SwaggerUI 进行调用是不同的,因为 UI 实际上不会进行调用,除非查询字段有值。

    尝试在您的处理程序中执行console.log(req.query);。您可能会看到{name: ''}。这是合法的,只是 name 的值是一个空字符串。

    在这里查看 JSON4:Representing null in JSON。所以 name 已定义,但它是空的。

    您可能需要检查空字符串值。

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2015-10-24
      • 2020-02-01
      • 2018-10-24
      • 2011-07-02
      • 1970-01-01
      • 2012-06-27
      • 2021-03-30
      • 2021-06-24
      相关资源
      最近更新 更多