Knife4jUI集成
现在项目很多都是前后端分离的,这就涉及到前后端接口对接和联调,.net 6也支持swagger文档展示,但自带的swaggerUI太丑了,我这里集成了Knife4j的UI,先看效果图
主页描述
可以代码添加全局的授权请求头
可以手动添加全局请求头
可以下载离线文档
接口参数描述
实现步骤
1.导入程序包Swashbuckle.AspNetCore(swagger封装)、IGeekFan.AspNetCore.Knife4jUI(第三方的swaggerUI)
2.生成项目的注释的xml文档,打开项目的属性页面,生成-->输出
3.增加IServiceCollection的扩展方法AddSwagger
AddSwaggerExtension
注意:sg.OperationFilter<SwaggerFilter>();这句一定要带上;需要增加全局授权请求过滤器,否则调试时,请求头无法带上
SwaggerFilter
4.增加WebApplication的扩展方法UseBaseSwaggerUI
UseSwaggerUIExtension
5.在Program文件中调用封装的扩展方法来启用
6.将launchSettings.json文件中的launchUrl设置为空字符串,启动项目后就可以看到效果了
跨域处理
跨域处理篇幅较短,就放在一起分享了。
跨域指的是从一个域名下去请求另外一个不同的域名下的资源,导致跨域的原因是浏览器的同源策略问题;.net 6中处理跨域也有几种方法,可以使用跨域中间件、过滤器等处理方式,本文使用的是过滤器的方式
实现步骤
1.创建跨域处理的过滤器,继承IAsyncActionFilter(异步动作过滤器),可以在Action方法前后插入处理方法
CorsFilter
2.增加IServiceCollection的扩展方法UseCorsFilter
AddCorsFilterExtension
全局注册后,每个Action方法都会执行
3.在Program文件中调用封装的扩展方法来启用