后端接口报错如下:
前端nswag报错如下:
一、接口属性没有配置好
根据网上查询到的资料说明,说一般swagger这种错误都是控制器里有接口代码异常造成的,通常是接口没有加属性Attribute, 比如[HttpPost("Delete")]、[HttpGet("Delete")] 。
但是我检查了自己新加的控制器又没发现哪个接口有问题。 然后从控制台提示里也没看到提示有接口报错。 后来我就清理编译dll ,重新编译再启动后端调试,登录后端服务接口,重新进入到swagger界面之后,控制台有提示具体接口报错了,错误截图如下。根据提示找到控制器代码位置,其实还是接口缺少attribute,加上 HttpPost和SwaggerOperation属性就没有问题了。
[HttpPost("FindByFilter")]
[SwaggerOperation(summary: "FindByFilter", Tags = new[] { "TahmCJ_descs" })]
二、程序集里可能有类名重复了导致swagger反射解析类失败了。
比如我在下面两个命名空间都定义了CrmFinaFlowOutput 这个流程输出实体。 这时候swagger他就认为类重名了,会报错了,可能swagger解析实体的时候没有去区分命名空间的。
JQ.CRM.FINA.Application.Service.PayReq.Dto;
JQ.CRM.FINA.Application.Service.CustExp.Dto;