天天看点

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

这里需要说明一下,前端实现部分,请参考我的另外一篇文章。

基于REST风格的前后端分离的Web服务架构的.NET Framework实现第3讲《前端实现篇》

https://blog.csdn.net/leochen0207/article/details/89496203

由于新建的项目里面包含静态内容的wwwroot文件夹,这点和Spring Boot的微服务实现方式几乎一致,所以我只是把几个用来做测试的前端静态内容文件复制到这个文件夹里面。

接下来,实现后端的CRUD,也就是增删查改功能。我这里还是以用户信息为例。

第一,在数据库中新建User用户表

下图所示的是建表语句

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

第二,实现Models数据访问层

新建User类,直接上代码。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

这里需要注意,[Table("User")]是注解,这和Java基本类似,代表的是数据库的表名,这个需要先在数据库中建表,也就是说,需要先有数据库的表。[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]也是注解,代表的是id是主键,并且是通过自增长方式来实现的。

然后新建数据访问上下文YpobDBContent对象。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

最后,还需要配置两个地方,第一个是appsettings.json,如下图所示。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

这里主要是加入了SqlServerConnection数据库连接字符串。第二个是Startup.cs,如下图所示。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

第三,实现Repositories业务逻辑层

新建UserRepository类,直接上代码。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

这里需要注意,数据访问层在这里是通过构造函数的方式注入进来的。这里我查阅了很多资料,才把业务逻辑层和数据访问层分开了,也算是对架构的一个贡献吧。

具体代码就不展开了,需要看源代码的,可以到GitHub上下载来对照着看。

第四,实现UserController

右键Controllers文件夹->添加->控制器,选择箭头所指的部分,添加。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

输入UserController,添加。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

源代码如下图所示。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

这里需要注意,数据访问层同样是通过Controller的构造函数注入给业务逻辑层的,这是微软官方文档中的主要实现方式。然后路由这里我改动了一下,就是还需要在路由中加入action。这样做的好处是,可以指定具体的action来提供给前端使用。这也是我在正式项目中主要使用的方式。

另外,如果不想访问默认路由的话,那还需要对launchSettings.json进行修改,如下图所示。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

最后,要想实现前端静态内容的访问的话,还需要修改Startup.cs,如下图所示。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

到此为止,后端的核心代码就算是实现完成了。下图是项目的结构。

RESTFull风格的.NET Core微服务前后端分离架构实现之二(后端实现)

下一篇文章,我会具体测试一下程序是否正常,是否符合要求,这也算是符合测试驱动开发TDD的思想吧。

继续阅读