.NetCore WEBAPI学习笔记(一)
记录一下学习历程,.net core接触不久,刚写好一个framework版本的webapi,一不小心接触到了.net core和restful相关的资料,脑子一热就开始研究.net core了,把现有的webapi也按照restful标准修改了一遍(其实后来又看到了微服务的资料...感觉自己气数已尽...)
一、学习工具
1. Visual Studio 2019
2. Visual Studio Code
3. Postman(感觉swagger其实也够用)
二、项目库及版本
1. 创建.net core webapi项目,用的是.net 5,一步到位学习适应,终于大一统了
2. 依赖注入,用的是自带,没有用第三方(Autofac,估计以后会换,暂时用不上)
3. Automapper 对象映射
4. Swagger 接口文档,做测试也不错,需要更强大功能,还是需要postman
5. xUnit.net 单元测试
三、Startup.cs文件
刚创建好.net5的webapi项目,简直了,一脸懵逼。



创建好的新项目,默认会有一个天气预报的API例子
直接运行,就可以看到Swagger提供的API文档界面,很友好

在这里,要记录下一些基本东西
1. .netcore webapi自带了一个kestrel微型服务器,可以不用IIS Express来调试,好处是有控制台显示
2. kestrel的注册在Program.cs文件中

1. Program.cs文件记录:创建一个宿主
webBuilder.ConfigureKestrel((context, options) => { // 这里可以对Kestrel进行配置 })
webBuilder.UseStartup这里可以不用默认的Startup.cs类,例如: webBuilder.UseStartup(typeof(myStrartup))
2. Startup.cs文件记录:文件虽小,知识点很多,以后学到新的就记录,以备日后查询复习
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
上面是Startup类的构造函数,通过依赖注入Configuration的实例方法
public void ConfigureServices(IServiceCollection services)
上面是注册各种服务的方法,这个方法是在主机(Kestrel)运行之前就会执行(CreateHostBuilder(args).Build()这个方法里面),Program.cs少记录了一条 CreateHostBuilder(args).Build().Run(); 构造=>创建=>运行
也是依赖注入ServiceCollection,里面包含了大批常用库。
Automapper也是在这里注册,自己的依赖注入也是这里完成,默认有Swagger的配置,最重要的是services.AddControllers(),以后各种配置都要在这里完成,东西太多,还是要研究MSDN去
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
上面这个就是管道了,各种中间件都写在这里,感觉跟nodejs越来越像了
路由也在这里,不过现在不在这里写了,只有一句配置config.MapControllers();
因为要走RESTful这种自虐路线,路由都是在controller和action上配置了
第一篇先写到这里,内容还缺很多,作为第一篇学习记录,浅尝辄止,把自己学习中的很多疑虑列出来最主要,不至于以后继续犯蒙。
尤其是以前在.net webapi中返回用HttpResponseMessage,换到.net5以后没有了,一时半会居然不知道要用什么,学习了一段时间后,又在三种不同的返回类型上纠结(IResultAction,ResultAction<T>,直接返回结果)
最终全体成员决定用ResultAction<T>,原因是最全,状态码什么都有,IResultAction好像是没有状态码。
初学不久,还需深入,也希望同是新手的朋友不至于在新手村徘徊太久。
有志同道合的朋友可以加Q6663555共同学习!

浙公网安备 33010602011771号