统一入口适合制定了一种接口规范,所有加密的请求都走这一个接口 。然后通过路由解析调度到不同的控制器 。其实我讲了我司在 .NET Framework 下采取的一种方案,好处时实现简单,做到了代码复用,对业务代码进行了解耦 。但缺点是用了反射成为了性能消耗点,并且当业务越来越多就会产生代码爆炸,成为了维护灾难 。
而中间件或 IHttpModule 方式就很好的解决这了这点 。但同样也不是使用所有场景,如对新增的不需要加密的接口要进行过滤处理等 。
最后介绍了模型绑定这种方式,技能很方便的满足大多数场景,也满足个别列外的需求 。但同样也有缺点,就是无法针对接口响应体进行自动加密处理,所谓好事做到底,送佛送到西,这事只能算是做到一半吧 。
其实我还想到了一种类似 Aop 的方案,那就是实现一个路由过滤器的功能,当请求进来,通过路由处理程序对请求体进行解密,然后重写请求流 。然后调度到对应的原始路由,最后在响应的时候再加密重写一次 。不过查阅了一番资料,并没有收获 。
参考资料
- https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.modelbinding.imodelbinderprovider?view=aspnetcore-7.0
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/write?view=aspnetcore-6.0
- https://www.stevejgordon.co.uk/html-encode-string-aspnet-core-model-binding
经验总结扩展阅读
- 重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]
- node.js:《接口实现文件的上传和下载》
- .Net Core&RabbitMQ限制循环消费
- IQueryable和IEnumerable 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘
- .NET6打包部署到Windows Service
- api什么是api管理 api管理有什么作用
- ppapiflash插件是啥 ppapi插件是什么
- Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
- 是什么让.NET7的Min和Max方法性能暴增了45倍?
- 19 基于.NetCore开发博客项目 StarBlog - Markdown渲染方案探索