手把手教你AspNetCore WebApi:入門

需求

前幾天,馬老闆給小明和小紅一個「待辦事項」網站,小明負責後端,小紅負責前端,並要求網站可以同時在 Windows、和 Linux 上運行。

小明整理了一下「待辦事項」的功能清單:

  • 獲取所有待辦事項
  • 按 ID 獲取項
  • 添加新項
  • 更新現有項
  • 刪除項

創建 Web 項目

  • 從「文件」菜單中選擇「新建」>「項目」 。
  • 選擇「ASP.NET Core Web 應用程式」模板,再單擊「下一步」 。
  • 將項目命名為 App001,然後單擊「創建」。
  • 在「創建新的 ASP.NET Core Web 應用程式」對話框中,確認選擇「.NET Core」和「ASP.NET Core 3.1」 。 選擇「API」模板,然後單擊「創建」 。

測試 API

按 Ctrl+F5 運行應用。 Visual Studio 啟動瀏覽器並導航到 //localhost:/WeatherForecast,其中 是隨機選擇的埠號。

到目前為止,小明已經成功創建並運行了一個WebApi項目。

項目結構

從這個圖中可以看出WebApi項目主要由Program.cs,Startup.cs,appsettings.json,WeatherForecastController.cs文件組成,那麼現在我們一個一個介紹一下這幾個文件主要由什麼作用。

Program類

它是所有.net core程式的入口,定義了2個方法:Main() 和CreateHostBuilder();

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

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

程式碼不複雜,創建泛型主機並運行。

Startup類

主要包括 ConfigureServices 方法以配置應用的服務和Configure 方法以創建應用的請求處理管道。

// 運行時將調用此方法。 使用此方法將服務添加到容器。
public void ConfigureServices(IServiceCollection services)
{
}

// 運行時將調用此方法。 使用此方法來配置HTTP請求管道。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
}

appsettings.json

appsettings.json是在core中的配置文件,類似與以前asp.net中的web.config

WeatherForecastController.cs

就是一個控制器,就是處理 Web API 請求,派生自 ControllerBase 的控制器類。

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase

發布到IIS

在 Windows Server 上安裝.NET Core Hosting Bundle。

//dotnet.microsoft.com/download/dotnet-core/3.1

創建 IIS 站點

  1. 在 IIS 伺服器上,創建一個文件夾以包含應用已發布的文件夾和文件。 在接下來的步驟中,文件夾路徑作為應用程式的物理路徑提供給 IIS。
  2. 在 IIS 管理器中,打開「連接」面板中的伺服器節點。 右鍵單擊「站點」文件夾。 選擇上下文菜單中的「添加網站」。
  3. 提供網站名稱,並將「物理路徑」設置為所創建應用的部署文件夾 。 提供「綁定」配置,並通過選擇「確定」創建網站 。

發布和部署應用

  1. 將應用發布到一個文件夾。
  2. 文件夾的內容將移動到 IIS 站點的文件夾(IIS 管理器中站點的物理路徑)。

小結

目前為止,小明創建並運行WebApi應用,並了解WebApi項目結構及各個文件的用途,然後把WebApi應用發布到IIS並可以在瀏覽器中訪問它。小明摸了摸光滑的腦袋,打算先喝一杯咖啡讓腦袋休息一下。