iT邦幫忙

2021 iThome 鐵人賽

DAY 5
1
Modern Web

網站一條龍 - 從架站到前端系列 第 5

[Day05] Web API 專案架構

  • 分享至 

  • xImage
  •  

今天我們來介紹一下我們 API 專案的架構。.NET 幫我們產生的專案包含以下幾個部分:

  • Properties 資料夾 – 裡面有一個 launchSettings.json 用來設定我們的 API 程式啟動時的方式。其中 “iisSettings” 區塊是在 IIS 上執行時會套用的設定,Visual Studio 按 F5 就是跑在 IIS Express 上。另外有一個區段會與專案名稱同名,這個區段是跑在 Kestrel 上面時會套用的設定,以後我們發佈程式到 Linux VM 就是套用這邊的設定。
  • 相依性 – 在這裡可以檢視我們所使用的套件資訊(VS code 看不到這個節點,必須自己打開 csprj 檔來檢視)
  • Controllers 資料夾 – Controller 簡單來說就是用來定義我們對外的 API 接口,使用者的 request 如果是合法的、而且有對應到 Controller Action(我們稱controller 的 public method 為 action),這個 Controller 就會處理這個 request 並回覆 response
  • appsettings.json – 正式環境(Production)的設定檔,我們可以透過 .NET 的 IConfiguration 擴充功能從這裡取得程式需要的設定值。注意!如果這個檔案包含重要的隱私資訊,請勿加入版控!
  • appsettings.Development.json – 開發環境的設定檔,本機 debug 的時候,這個設定檔會蓋掉正式環境的設定
  • Program.cs – 程式進入點
  • Startup.cs – 主要用來註冊 Service、使用 Middleware
  • WeatherForecast.cs – 「WeatherForecastController」會用到的 Model

以下是簡化的 API Server 運作流程:

  1. 根據 Startup.cs 中的程式碼,開始準備 Service 或 Middleware
  2. 根據 launchSettings.json 設定開始監聽特定 port 的 Request
  3. 合法的 Request 進到 Controller,Controller 透過依賴注入取得 Service,然後處理 Request
  4. Request 處理完畢後,Server 回傳 Response

微軟的這篇文章鉅細靡遺地說明了整個專案的架構,有興趣的邦友可以參考這篇文章獲得更多有關 Web API 的知識。

明天我們會先在現有的架構下時做一個簡單的 Restful API,之後再介紹如何在 .NET 實現 DI(Dependency Injection,依賴注入)並取得 service


上一篇
[Day04] 安裝 IDE 與 .NET SDK
下一篇
[Day06] 用 .NET 實做簡單的 RESTful API
系列文
網站一條龍 - 從架站到前端33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言