netcore swagger 错误 Failed to load API definition

文章讲述了作者在使用nswag时遇到后端接口报错,经排查发现是控制器中的接口缺少Attribute标记。清理编译并重新启动后,接口错误被具体定位,最终通过添加HttpPost和SwaggerOperation属性解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后端接口报错如下:

前端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;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值