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类文件
配置服务和应用的请求管道
在这里插入图片描述
该文件包含 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?}");
            });
        }
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值