项目中.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方法中使用到同名但不同命名空间的类移除掉,合并到同一个文件中即可.