想实现像ABP动态API功能,ABP源码太复杂看不懂,可看看这个教程

360影视 2025-01-06 09:51 3

摘要:大家都认为动态API非常好用,但奈何看不懂,自己也不知道无法实现,更不要说自定义扩展了。

大家好,我是编程乐趣。

很多人一直很好奇,ABP动态API、动态控制器是如何实现的。

大家都认为动态API非常好用,但奈何看不懂,自己也不知道无法实现,更不要说自定义扩展了。

1、动态API背景

在介绍原理之前,我们先聊聊动态API、动态控制器的背景。

在DDD框架中,领域层和应用层是核心、所有业务处理与逻辑全部放在这两个层,而API层只是薄薄的一层。比如:以下API代码截图,每一个接口都是只有2行代码。

这些代码都是很简单、很类似的代码,我们有多少对外的接口,就要编写多少次,妥妥的低级码农的工作。

如果你作为架构师,当然要考虑如何把这些代码去掉,让开发人员可以更专心地开发业务代码,而不是整天编写重复的代码,提升开发工作效率,也可以让开发人员工作更开心一点。

要解决问题,就需要引入一个概念:动态生成Web API。大家比较熟悉、常用的ABP框架就有实现这个功能,在ABP的文档把这个功能叫做:自动API控制器。

2、应用程序部件

我们之所以可以实现动态Web API,要归功于Asp.net Core为我们提供的:应用程序部件。

在Asp.Net Core架构里,MVC控制器、视图组件、Razor Pages、Razor 视图、标记帮助程序(Tag Helpers)等都是一个独立的功能组件,它允许我们通过发现并加载应用程序中的特定功能组件。

比如:Web API只需加载MVC控制器、MVC架构的程序需要加载MVC控制器、视图组件等。

比如官方文档里示例里,就是通过加载外部的DLL库,来加载控制器。

3、课程专栏与实现效果

大家都很喜欢这个功能,但又不知道如何实现,于是我在星球里专门创建一个专栏《教大家从零学习如何实现动态控制器》,带领大家实现功能的同时,教程里也有讲解如何阅读MSDN文档,核心是让大家掌握自学的能力,感兴趣的欢迎加入学习。

以下是专栏的截图,总共分为12个课程,跟着教程就可以从零一步步实现此功能,让你可以完全掌握这个功能的实现,方便后续根据需求扩展和修改。

实现效果如下:

4、想要学习动态控制器、框架搭建

专栏课程我放在星球里面,想要学习的,直接领取下面优惠券加入。

星球还有其他8个专栏和其他内容,想要了解更多的,可以查看:编程乐趣.Net社区。

- End -

来源:编程乐趣一点号

相关推荐