在node.js上大举的可空字段

我花了一大堆时间试图find解决scheme,在Node.JS中创buildswagger文档。 主库是swagger-node,在其中创build一个swagger yaml文件,然后将控制器添加到其中。 它会自动在您的应用程序中提供swagger ui文档,并根据您在yaml中指定的模型对请求和响应进行validation。

这是整洁的,但是我有一个要求,我想明确地能够返回或接受null作为一个值的一些领域,例如:

 { id: 123, description: "string", date_sent: null } 

我不想删除date_sent键,我想明确说明它为空。

swagger规范不支持anyOf这是我相信JSON模式通常如何做。

我想知道是否有解决方法? 也许某些库可用于节点,您可以添加一个x-nullable供应商特定标志,或某种方式指定我的不需要的字段应该都是可以为空的。

我将不得不自己写一些需要我的swagger文件,然后在validation器中间件运行之前修改它,或者有人可以build议一些解决方法吗?

SwaggerUI不支持可空types(请参见这里 )。 但是我使用了可空属性:

 type: ['string','null'] 

之后,这个属性从UI中消失,但validation仍然工作。

OpenApi(又名Swagger)规范v3.0.0中将支持nullable字段

而不是在types属性中添加null,而是可以使用default属性。

Swagger.json属性定义示例:

 "due_date": { "type": "string", "description": "Due date", "default": "null" }, 

这是一个有效的Swaggertypes定义,并且在Swagger UI中仍然按预期显示。