C# 使用各类拦截器 设计api
想重新开个坑,做个使用各类拦截器为基础来做一个 c#的api服务
同时完成相关的安全操作
使用技术
- .Net FrameWork 4.5
其实知道大家现在都玩.net 6.0了,但是这次我是借着公司分配的任务 来自己总结下经验,语言方面只能选择 4.5FrameWork.
不过,如果我用 4.5的FrameWork都能实现,那.net Core一定不再话下
主要还是想跟大家分享下使用各类拦截器进行api接口设计的思想(这个思想我也是参考的百小僧大佬的Furion框架的设计思想)
使用工具
- postman
过滤器、拦截器科普
我后面也会把各层过滤器代码 一个个的写上,大家一起学习,一起分享
设计思想概述
- C#程序启动一个端口监听,配置相关的跨域请求、监听端口、请求方式等
- 依次进入
- 权限验证过滤器(AuthorFilter)
- 资源过滤器(ResourceFilter)
- 数据统一封装过滤器(ResultFilter)
- 方法过滤器(RequestActionFilter)
- 异常过滤器(ExceptionFilter)
- 最终进入业务层,如果业务层返回失败的逻辑,直接抛 特定异常类型 到异常过滤器,由异常过滤器进行统一处理
- 然后异常过滤器返回重写的数据结果,再次通过ResultFilter进行数据统一封装
- 其中,异常过滤器的设计采用了 抛出异常代替return返回的设计思路
ps: 以上的这些过滤器,大家不要在意了…我用.net framework写的时候,发现 .net FrameWork和net core过滤器差别很大,后面我会开坑说说.net framework的过滤器相关知识,这边文章就作为 net core过滤器的知识吧
数据流程图
代码我将在后续补充,各个Filter可能会存在不同的内容调整,等我后面写代码的时候,也会不定期对本篇博客进行修改