【Swagger】中string类型参数必填的诡异问题

背景

ASP.NETCore3.0项目,使用Swagger接口文档。

之前的项目都是Swashbuckle.AspNetCore-5.0.0

新项目想尝尝鲜,用最新版Swashbuckle.AspNetCore-5.6.3

目前发现的新变更就是返回结果示例值的颜色,不同数据类型是不同颜色

 

环境

接口

一个Get请求的接口,使用FromQuery方式,定义的入参类去接收参数

 

入参类

string类型和long?

 

 

问题复现

Swagger请求

返回400的错误。在模型绑定时就已经被拦截,根本没有运行到接口的非空验证。

 

POSTMAN请求

返回400的错误。在模型绑定时就已经被拦截,根本没有运行到接口的非空验证。

 

原因

猜测

因为使用了最新的Swagger组件,愚以为是新版本的问题。

真的,为有这种想法感到羞愧。

实际问题

因为上面的猜测,随将一个旧项目的Swagger从5.0.0升级到5.6.3,

但是没有发生这样的问题,

所以还是我使用的问题。

因为是模型的问题,所以想会不会是项目属性的设置问题,

遂,对比老项目和问题项目的项目属性。

终于发现了问题所在:项目属性->生成->可以为null

 

 git提交差异

 

最终结果

项目属性->生成->可以为null : 禁用

 

结语

回想一下,好像是在配置【取消显示警告】时候,鼠标滚动了把这个配置修改掉了。

淦,这都什么问题,折腾我半天。

posted @ 2020-12-14 16:45  我有我奥妙  阅读(760)  评论(0编辑  收藏  举报