Swagger API“必需” - 这需要多少?
Posted
技术标签:
【中文标题】Swagger API“必需” - 这需要多少?【英文标题】:Swagger API "required" - how much is this required? 【发布时间】:2015-12-28 19:54:52 【问题描述】:我已经使用此规范创建了一个Swagger(在 nodejs/express 上)测试 API(仅相关部分):
...
parameters:
- name: name
in: query
required: true
type: string
...
但是我可以调用带有空参数的url,例如
http://localhost/test?name=
它可以正常工作,不会抛出异常或任何其他迹象。为什么?
【问题讨论】:
【参考方案1】:如果我通过 curl 或 postman 从终端进行类似的调用,它也可以正常工作。我从请求对象中解析查询,发现在这种情况下,查询参数被解释为空字符串。
通过 SwaggerUI 进行调用是不同的,因为 UI 实际上不会进行调用,除非查询字段有值。
尝试在您的处理程序中执行console.log(req.query);
。您可能会看到name: ''
。这是合法的,只是 name 的值是一个空字符串。
在这里查看 JSON4:Representing null in JSON。所以 name 已定义,但它是空的。
您可能需要检查空字符串值。
我希望这会有所帮助!
【讨论】:
以上是关于Swagger API“必需” - 这需要多少?的主要内容,如果未能解决你的问题,请参考以下文章
Swagger 2.0 - 如何使“一个或另一个”参数成为必需?