ASP .NET Core Web API_ 01_項(xiàng)目創(chuàng)建及基礎(chǔ)配置

項(xiàng)目創(chuàng)建

  1. ASP .NET Core Web Application 設(shè)置為Blog.Api

  2. 選擇Empty+No Authentication

  3. 添加.NET Core類庫(kù),Blog.Core + Blog.Infrastructure

    • Infrastructure 依賴 Core

    • Api 依賴 Infrastructure + Core

Program + Startup

  1. Program進(jìn)行基礎(chǔ)設(shè)施的配置,很少發(fā)生變化

    • HTTP Server

    • 集成 IIS

    • 配置信息來源

  2. Startup 配置自定義行為,可能經(jīng)常發(fā)生變化

    • 組件 服務(wù) 功能

    • 中間件管道

  3. Startup.cs

    • ConfigureServices 所有程序級(jí)的依賴項(xiàng)都可以在這里注冊(cè)到默認(rèn)的IoC容器里, 把它們添加到IServiceCollection即可

    • Configure 配置應(yīng)該遵循Add/Use的風(fēng)格樣式, 首先定義需要什么, 然后定義如何使用它.是真正負(fù)責(zé)配置HTTP請(qǐng)求管道的方法, 并且運(yùn)行時(shí)也需要它

管道請(qǐng)求

基礎(chǔ)配置

  1. 運(yùn)行時(shí)環(huán)境 ASPNETCORE_ENVIRONMENT

    • ASP.NET Core還允許我們按約定為指定環(huán)境建立單獨(dú)的啟動(dòng)配置. 啟動(dòng)類可以通過這個(gè)函數(shù)定義UseStartup(startupAssemblyName: xxx); 運(yùn)行時(shí)會(huì)在這個(gè)指定的組件查找叫做Startup, Startup[環(huán)境名]的類, 其中[環(huán)境名]就是ASPNETCORE_ENVIRONMENT這個(gè)環(huán)境變量的值. 如果能找到指定環(huán)境的類, 那么它將覆蓋默認(rèn)的啟動(dòng)類.

    • 例如:環(huán)境變量值如果是Development的話, 那么運(yùn)行時(shí)就會(huì)嘗試尋找Startup和StartupDevelopment類, 該約定在啟動(dòng)類里面的方法名上也有效, 環(huán)境特定的啟動(dòng)類里的兩個(gè)方法分別是 Configure[環(huán)境名]和Configure[環(huán)境名]Services.

    • ASPNETCORE_ENVIRONMENT環(huán)境變量 Production Development Staging 沒有設(shè)置則使用Production

   public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                //.UseStartup<Startup>();
                .UseStartup(typeof(StartupDevelopment).GetTypeInfo().Assembly.FullName);
    
image
image
image
  1. HTTPS

    • 微軟建議所有應(yīng)用調(diào)用HTTPS重定向中間件,來把所有的HTTP請(qǐng)求重定向?yàn)镠TTPS

    • Startup:

      • ConfigureServices方法注冊(cè),并配置端口及狀態(tài)碼

services.AddHttpsRedirection(options =>

            {

                options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;

                options.HttpsPort = 5001;

            });

    * Configure方法使用該中間件: app.UseHttpsRedirection()
  1. HSTS (HTTP Strict Transport Sercurity Protocol)

    • 微軟建議在生產(chǎn)環(huán)境(production)下啟用HSTS

    • Startup:

      • ConfigureServices方法注冊(cè)并配置 HSTS

             //HSTS 只配置在生產(chǎn)環(huán)境

            services.AddHsts(options =>

            {

                options.Preload = true;

                options.IncludeSubDomains = true;

                options.MaxAge = TimeSpan.FromDays(60);

                options.ExcludedHosts.Add("example.com");

                options.ExcludedHosts.Add("www.example.com");

            });

  * Configure方法使用該中間件: app.UseHsts()
  1. launchSettings.json
  • 開發(fā)時(shí)只保留console,其余刪除
{
  "profiles": {
    "Blog.Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000/api/posts",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容