.Net Core 3.x Api開發筆記 -- Starup入門(二)

上節演示如何建立一個 api項目,本節初步認識項目相關的基礎內容!web

項目生成後,你會在根目錄看到兩個文件  Program.cs、Startup.csapi

Program.cs就很少說了,就是一個控制檯程序,作初始化加載操做跨域

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        /// <summary>
        /// 默認初始化系統內置的配置
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

Startup.cs 在項目開發當中,會常常打交道,主要有兩個方法,我的理解以下app

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }


        /// <summary>
        ///  This method gets called by the runtime. Use this method to add services to the container.
        ///  側重於註冊或者添加支持某個組件
        ///  當你須要用到某個第三方組件時,在這裏添加以後就可使項目支持了
        ///  好比:要想使項目支持跨域時, 添加相應包以後,就須要在這裏使用services.AddCors 添加組件支持
        ///  再好比:作認證受權時,想要使用第三方JWT組件生成token之類的內容時,也須要在這裏添加相關支持
        ///  再好比:讀取配置文件時,也須要在這裏作相應操做
        ///  等等。。。
        ///  它就相似一臺組裝臺式機,當須要硬盤時,在這裏安裝硬盤的註冊支持就可使用;當須要內存條時,一樣在這裏註冊支持才能使用
        /// </summary>
        /// <param name="services"></param>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        /// <summary>
        /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        /// 側重於客戶端的http請求過濾,或者說請求攔截,配置如何去處理http請求
        /// 當客戶端發起一個http請求時,會進入該方法,按照從上到下的順序依次執行,
        /// 當執行到某個業務時,若是不符合業務規則,會直接返回,並根據你設置的程序邏輯給出相應提示!
        /// 好比:原來MVC中的路由配置直接挪到了這裏
        /// 好比:當你作認證受權過濾時,就要在這裏配置一下,而後登陸時會自動先通過這裏作邏輯驗證
/// 用管道比喻就是,在一個管道里邊作了一層層橫向攔截,交錢了就放行,沒錢的從哪兒來回哪兒去!
/// </summary> /// <param name="app"></param> /// <param name="env"></param> public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } }
相關文章
相關標籤/搜索