c# 简单web api接口实例源码分析

CreateHostBuilder(args).Build().Run();

这句语句处于c#webapi程序的第一句,它的作用是:启动接口的三个步骤:

  1. 创建一个HostBuilder对象。
  2. 执行IHostBuilder.Build()方法创建IHost对象。
  3. 执行IHost.Run()方法启动。
    创建和配置Host(主机)的过程就是创建和配置ASP.NET Core应用程序的过程。它包含了应用程序配置、开发环境配置、日志文件配置以及依赖注入。

创建一个HostBuilder接口的对象。

Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
         webBuilder.UseStartup<Startup>();
    });

在这句话后面可以跟很多服务的配置。也可以跟host生命周期事件的挂载。
.ConfigureWebHostDefaults() —配置webapi的信息。

startup.cs类文件
配置服务和应用的请求管道
c# 简单web api接口实例源码分析_第1张图片
该文件包含 startup构造函数,configuration属性,ConfigureServices方法以及Configure方法。
构造函数的作用是注入三种服务。

  • IConfiguration 服务
  • IWebHostEnvironment 服务
  • IHostEnvironment 服务
    这个构造函数的作用就是将在main函数中配置的服务注入到服务器中。

ConfigureServices函数:配置服务到DI容器中。
下面的代码就是在di容器中加入 webapi所使用的mvc架构和注册其中的控制器服务。

        public void ConfigureServices(IServiceCollection services)
        {
            //注册标准的mvc架构
            //services.AddMVC();
            //注册controller相关服务,纯webapi
            services.AddControllers();
        }

Configure方法:用于配置http请求管道,请求中间件。(在ConfigureServices函数之后调用)
下面代码中,app.UseRouting() 和app.UseEndpoints() 必须搭配在一起使用。分别是请求路由中间件,以及将中间件对应到终结点上。

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            //处理异常的
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }


            app.UseStaticFiles();  // 使~/指向wwwroot文件夹


            //使用路由服务  创建路由中间件EndpointRoutingMiddleware
            app.UseRouting();
            //账号认证
            //app.UseAuthorization();
            //给路由中间件设置终结点
            app.UseEndpoints(endpoints =>
            {
                //自定义路由
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }

你可能感兴趣的:(c#,前端,开发语言)