我已经使用此规范创建了Swagger(在nodejs / express上)测试API(仅限相关部分):
...
parameters:
- name: name
in: query
required: true
type: string
...
但我可以用空参数调用网址,例如
的http://本地主机/测试名称=
它没有任何问题,没有任何异常或任何其他迹象。为什么呢?
答案 0 :(得分:1)
如果我通过卷曲或邮递员从终端拨打类似的电话,它也可以。我从请求对象中解析了查询,发现在这种情况下,查询参数被解释为空字符串。
通过SwaggerUI进行调用是不同的,因为UI实际上不会进行调用,除非查询字段具有值。
尝试在处理程序中执行console.log(req.query);
。您可能会看到{name: ''}
。哪个是合法的,只是name的值是一个空字符串。
在这里查看JSON4:Representing null in JSON。因此,名称已定义,但它是空的。
您可能需要检查空字符串值。
我希望这有帮助!