浅谈.netCore中的动态API

动态API控制器发现的逻辑

在以往的MVC的架构中,C-控制器这一层的重要性不言而喻,但是在以往的项目中,随着项目的壮大,控制器越来越多,当然也有通过代码的形式去简化Controller的个数,但是也不太友好,经过研究发现一新词(动态API),动态API故名思义就是由应用程序自己去发现控制器接口,当然要让应用程序去发现这一控制器,需要开发人员本身去重新发现方法,如下:
实现动态API的主要方法控制器的在这里插入图片描述
此方法主要继承ControllerFeatureProvider,重写IsController发现方法。根据自身需要书写发现逻辑。
这样我只需要在具体的Application应用程序层只关注我的接口而不在着重关注控制器,我这里个人称之为从MVC(模型-试图-控制器)转变为MVA(模型-试图-应用程序),为什么要这么转变,在搭建传统的MVC框架结构中,C中的控制器中的服务还是需要去调用Service层的服务接口,这样导致C这一层还是要跨一层服务的调用,导致开发者本身着重关注着控制器而不是应用程序本身。转变到MVA,开发者抛弃控制器的理念(不是绝对的抛弃),只着重于应用程序的业务服务本身,可以降低开发的时间和调试成本,从而大大提高开发效率。

发现失败的情况并进行分析

我在搭建动态API的框架中,发现在项目启动后,并没有成功找到Application这一层的Assembly,从而经过AI的建议,逐一排查,发现需要你的服务类必须为public公共出来,并且还需要继承IApplicationPartTypeProvider,但IApplicationPartTypeProvider在NameSpace Microsoft.AspNetCore.Mvc.ApplicationParts下,为AspNetMvc.Core中本身就包含的,而不为特定的程序集。
最后发现要实现动态查找,当然接口的特性需要标注[HttpGet]等请求特性,因为HttpGet在命名空间Microsoft.AspNetCore.Mvc下,从而底层动态查找的时候才能找到此Assembly,从而实现了动态API_Controller的注册。
经过swagger的注入,成功发现接口并调用成功,至此动态API框架搭建成功。
本人一直持续更新动态API对于项目的实战情况更新,暂时先从个人博客项目开始着手,每周进行更新,欢迎访问各位.net大神们提出架构中存在问题的宝贵建议。
保持持续学习的心态!!!
附上:
github地址:https://github.com/wlly3761/Blog;
框架结构贴上:

框架持续更新中

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值