core环境与swagger搭建

都说VS是宇宙第一IDE,那么选择开发时,我们怎么把大家都说的环境搞好了。

如今开发Core一般都用vs2019,如何下载,就不说了,百度说的太清白的了,我只是讲讲使用vs时,我们把字体搞的舒适点。

  设置以后,你们不会傻傻的0,o不分了。字体界面也优美不少吧。

在开发之前,有必要啰嗦一下core的机制。.NET Framework时代,微软给我们干了太多的事,封装的也很厉害,他的19个管道事件都在哪里,不管你用或者不用。所以啊,注定他是费时费力。Core则是,你申明,不注册,则不会有那么多糟心的事。所以也带来的很多不便,比如静态文件的读取你都需要去配置,否则,连静态文件你都无法使用。

进入正题:

由于现在流行的都是前后端分离,那么这次创建的是webAPI项目。

当我们新建好一个core项目时,里面有两个重要的文件,program和startup。Program文件中main方法是整个项目的入口。

当我们刚开始学习写代码的时候,main方法是我们见过的第一个方法,因为main方法是程序的入口。所以core的开发也是从main开始。

随便说下,为什么main是0个引用。以后但凡出现0个引用,在实际的代码运行时,又能运行到这来,那一定用了反射。Main方法这个只是运行时环境对他进行了反射调用。

Main方法中只有一句代码,这句是干什么用的呢?这个就是创建实例一个主机,当主机创建启动以后,整个web系统就托管在这个主机上了。那么对这个主机的配置就是对整个应用系统的配置。

比如我们不想使用系统提供的容器则,可以在这里将容器进行替换,不想使用他提供的日志管理也可以在这里进行替换。

 在CreateHostBuilder以后,我们就要进入startup文件了。

Startup文件:

   Startup 中除了构造函数以外,有两个方法,ConfigureServices与Configure。

   通过core自带容器注入IConfiguration,IConfiguration是用来读取appsettings.JSON配置文件,我们在这个文件中的配置项,都可以通过他来读取。

讲ConfigureServices与Configure之前,需要先说说中间件。对什么是中间件呢?百度有介绍,但是我们想说这里的中间件是什么,干什么用的,那么会更好的让你理解。

在core中我们使用中间件是为了更好的解耦。当权限认证,日志记录,缓存使用,异常处理,IP访问控制等等,这些更我们本身的业务不想关联,但是每个模块都不需要使用的时候,我们总想把他抽离出来,做统一的处理。这个其实就是一个管道。当你注册一个中间件进来时,每个一个请求都会从你进来(当然前面的管道中断你了,则不会),每一个情中间件都会像筛子一样过滤一下你的请求,当你符合他设定的条件,他就会给你加点东西,放你通过,当你走到管道的尽头,请求又会回来,当经过你时,你又筛一下,符合条件又给你加点东西。

举个例子: 我们有一个山洞,山洞中有很多到门(这个门就是中间件),当有一个小孩进入山洞时,他需要进过我们设定的门,当门打开,他能通过,门则一直开着,等着他回来,当他到了那道门不能让他过去,或者到了洞底,他则需要原路返回,然后也需要经过一道道门。

那么ConfigureServices是申明我有这么一个门,Configure是说,我们安上这到门。中间件就这么说完了,应该浅显易懂吧。其实很多东西就是这么简单,只是有人把他总结后,取个名字罢了(就像以前我不知道读写分离,和数据库使用调度方法一下,一看高大上,自己一动手就是那么回事)。

在ConfigureServices中,IServiceCollection又是什么呢?IServiceCollection是core自身的容器,所以你使用这些东西,你必须把他注册到这个容器中去。IApplicationBuilder则是这个管道。你用使用什么必须就要app. Use来安装相关的中间件。

Swagger的使用

   Swagger就是为了方便前端朋友调用而使用的一款中间件。

  Swagger是一件非常容易的事(有了nuget什么都不是事)。

1、nuget swagger

 

安装完毕后。

2、在项目属性中切记进行下面两部操作,如图示:

 

指定输出路径和去掉1591警告。

3、在ConfigureServices中申明使用swagger

 

1、 在Configure中使用swagger

 

第4步和第5步标红的地方需要一致。

这个时候你启动项目,在项目地址后面输入:http://localhost:5000/swagger/index.html(swagger/index.html)则会得到你想要的结果了。

猜你喜欢

转载自www.cnblogs.com/aman11/p/12354675.html