Swagger Unable to render this definition The provided definition does not specify a valid version field.

Swagger Unable to render this definition The provided definition does not specify a valid version field.

 

 

项目中.net core 3.1使用swagger集成接口,报上面错误

 

排查下来有以下可能的三个原因:

1、api中的Controller/Action 请加入[HttpPost]或者 [HTTPGet]

2、api中的Controller中有私有方法(全部写道Service)

3、传入参数模型有问题.

 

其中1、2已确定没问题,以为是之前遇到的路由名称重复,检查后发现并没有,于是想到了第三个原因:传入参数模型有问题,细想了下刚拆分过模型类,检查了发现果然是这个问题

在.net core中,重名类如果分布在两个命名空间中,.net core程序运行是正常的,但是swagger会识别不出来,算是swagger的一个bug,稍晚点会提给swagger社区

 

解决方案:将controller方法中使用到同名但不同命名空间的类移除掉,合并到同一个文件中即可.

 

Swagger Unable to render this definition The provided definition does not specify a valid version field.

上一篇:线段树模板(区间修改+区间查询)


下一篇:nginx 跳转指定接口