在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中仍然按预期显示。