Swagger API "required" - 这需要多少?

Swagger API "required" - how much is this required?

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

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

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

http:///localhost/test?name=

而且它工作没有任何问题,没有抛出异常或任何其他迹象。为什么?

如果我通过 curl 或邮递员从终端发出类似的呼叫,它也能正常工作。我从请求对象中解析查询,发现在这种情况下,查询参数被解释为空字符串。

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

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

在此处查看 JSON4:Representing null in JSON。所以名称已定义,但它是空的。

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

希望对您有所帮助!