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

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

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

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 在項目開發當中,會經常打交道,主要有兩個方法,個人理解如下

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(); }); } }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章