当前位置: 首页 > news >正文

Asp.net core用Swashbuckle.AspNetCore库出现错误信息:No operations defined in spec!

最近在搞个框架进行模块化的,在主程序加载程序集里的Controllers,启动程序在浏览器访问http://localhost:5200/swagger/index.html页面的API出现错误信息:

No operations defined in spec!

1,后来新建一个项目进行一一排查

        先浏览器调试请求的http://localhost:5200/swagger/Sys/swagger.json里面返回的jsond的paths没有数据。证明获取不了Controllers的数据。

        对比一下代码里面SwaggerDoc方法里参数module.Name与 c.SwaggerEndpoint方法的{module.Name}一致;

  builder.Services.AddSwaggerGen(doc =>{// module.Name doc.SwaggerDoc(module.Name, new OpenApiInfo{Title = $"{module.Name} API",Version = module.Version,Description = module.Description});doc.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme{Type = SecuritySchemeType.ApiKey,In = ParameterLocation.Header,Name = "Authorization"});doc.AddSecurityRequirement("Bearer", new List<string>());});   
app.UseSwaggerUI(c =>
{foreach (var module in Shared.Extensions.ModuleExtensions.Modules){if (module.IsApplicationPart){c.SwaggerEndpoint($"/swagger/{module.Name}/swagger.json", $"{module.Name} API");}}});

2,必须加载Controllers的数据,要不然也是获取不了Controllers的数据。

  /// <summary>/// 向Mvc添加模块中的控制器/// </summary>public static IMvcBuilder AddModuleControllers(this IMvcBuilder mvcBuilder, string contentRootPath){Shared.Extensions.ModuleExtensions.Modules = Shared.Extensions.ModuleExtensions.GetModules();foreach (var module in Shared.Extensions.ModuleExtensions.Modules){//根据Modules文件夹和模块ID加载模块程序集  var moduleFolder = new DirectoryInfo(Path.Combine(Shared.Extensions.ModuleExtensions.ContentRootPath, $@"Modules\{module.Id}\{module.Id}.dll"));if (File.Exists(moduleFolder.ToString())){var assembly = Assembly.LoadFrom(moduleFolder.ToString());mvcBuilder.AddApplicationPart(assembly);}}return mvcBuilder;}

希望我的经历能帮助大家。

http://www.dtcms.com/a/449297.html

相关文章:

  • 苏州做网站企业行业前10的网站建设
  • 鸿蒙NEXT网络通信进阶:全方位优化HTTP传输性能
  • 2025年--Lc166--H103.二叉树的锯齿形层序遍历(二叉树的层序遍历)--Java版
  • 做服装的网站淮北市建网站
  • 襄阳网站推广优化技巧宿州市建设工程质量监督站网站
  • 《从踩坑到精通:边缘网关在物联网场景下的实践与优化指南》
  • 光通信|神经网络助力OAM模式快速解调
  • CodeBuddy CLI全攻略:从安装到实战及文档化编程深度思考
  • 两个无重叠子数组的最大和
  • linux网络服务+linux数据库3
  • 206-基于深度学习的胸部CT肺癌诊断项目的设计与实现
  • 二叉树进阶面试题:最小栈 栈的压入·弹出序列 二叉树层序遍历
  • 【大模型LLMs】LangGraph实战:引入网络搜索tool和Memory机制的对话Agent案例
  • 企业网站开发毕业报告网络营销的推广工具
  • 手机网站开发需要哪些人百度广告联盟怎么加入
  • 书生浦语实战营第六期 L1-G3000
  • 前端IM应用开发中的难点解析与总结
  • Web 服务器 UserDir(~username)功能解析:从原理到安全实践
  • 25新三年级上册数学混合运算应用题八大专项+三年级上数学混合运算练习/八大考点(复合问题/倍数问题)+完整电子版可下载打印
  • Linux基础IO(下):文件重定向和缓冲区
  • Flink 高级配置发行版剖析、Scala 版本、Table 依赖与 Hadoop 集成实战
  • 半成品公司 网站专业公司网站建设
  • 【数据结构】二叉搜索树 C++ 简单实现:增删查改全攻略
  • 深度学习(十七):全批量梯度下降 (BGD)、随机梯度下降 (SGD) 和小批量梯度下降 (MBGD)
  • 实验十九 GaussDB三权分立实验
  • C++微基础备战蓝桥杯string篇10.5
  • 基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装
  • 网站建设需求登记表 免费下载软件开发公司企业简介
  • 北京城乡建设网站网站建设都是用什么软件
  • C++分布式语音识别服务实践