我花了很多时间试图找到在Node.JS中创建swagger文档的解决方案 . 主库是swagger-node,在其中创建一个swagger yaml文件,然后将控制器添加到它 . 它会自动在您的应用中提供swagger ui文档,并根据您在yaml中指定的模型对请求和响应进行验证 .
这很简洁,但是我要求某些字段我想明确地返回或接受 null
作为值,例如:
{
id: 123,
description: "string",
date_sent: null
}
我不想删除 date_sent
键,我想明确地将其声明为null .
swagger规范不支持 anyOf
这就是JSON模式通常如何做到这一点我相信 .
我'm wondering if there'是一个解决方法?也许某些库可用于具有 x-nullable
供应商特定标志的节点,您可以添加,或者某种方式指定我的非必需字段应该都可以为空 .
我是否必须自己写一些带有我的swagger文件的东西,然后在验证器中间件运行之前修改它,或者是否有某些可以建议的解决方法?
3 回答
SwaggerUI不支持可空类型(请参阅here) . 但是我使用了可以为空的属性:
之后,此属性从UI中消失,但验证仍然有效 .
OpenAPI(fka Swagger)规范v3.0.0支持
nullable
字段,但不支持v2.0 . 可空类型定义如下:您可以使用默认属性,而不是在type属性中添加null .
Swagger.json属性定义示例:
它是一个有效的Swagger类型定义,并且仍然在Swagger UI中按预期显示 .