ASP.NET Core 中的 REST

已完成

當您瀏覽至網頁時,網頁伺服器會使用 HTML、CSS 和 JavaScript 來與您的瀏覽器進行通訊。 例如,如果您透過提交登入表單或選取購買按鈕來與頁面互動,瀏覽器就會將資訊傳回給網頁伺服器。

使用 Web 服務時,網頁伺服器可以透過類似方式來與各種用戶端 (瀏覽器、行動裝置、其他網頁伺服器等等) 進行通訊。 API 用戶端會透過 HTTP 來與伺服器通訊,這兩者都會使用 JSON 或 XML 等資料格式來交換資訊。 API 通常用於單頁應用程式 (SPA),可在網頁瀏覽器中執行大多數使用者介面邏輯。 主要是透過 Web API 來與網頁伺服器通訊。

REST:使用 HTTP 建置 API 的常見模式

具象狀態傳輸 (REST) 是建立 Web 服務的架構樣式。 REST 要求會透過 HTTP 進行。 其會使用網頁瀏覽器用來擷取網頁,以及將資料傳送至伺服器的相同 HTTP 指令動詞。 指令動詞如下:

  • GET:從 Web 服務擷取資料。
  • POST:在 Web 服務上建立新的資料項目。
  • PUT:在 Web 服務上更新資料項目。
  • PATCH:透過描述一組關於應如何修改項目的指示,來更新 Web 服務上的資料項目。 本課程模組中的範例應用程式不會使用此指令動詞。
  • DELETE:在 Web 服務上刪除資料項目。

遵守 REST 的 Web 服務 API 稱為 RESTful API。 其會透過下列項目來定義:

  • 基底 URI。
  • HTTP 方法,例如 GETPOSTPUTPATCHDELETE
  • 資料的媒體類型,例如 JavaScript 物件標記法 (JSON) 或 XML。

API 通常需要為一些不同但相關的項目提供服務。 例如,我們的披薩 API 可以管理披薩、客戶和訂單。 我們會使用「路由」將 URI 對應至程式碼中的邏輯片段,以便將 https://localhost:5000/pizza 的要求路由傳送至 PizzaController,以及將 https://localhost:5000/order 的要求路由傳送至 OrderController

在 ASP.NET Core 中建立 API 的優點

透過 ASP.NET,您可以使用相同的架構和模式來建置網頁和服務。 您可以重複使用模型類別及驗證邏輯,甚至在相同專案中同時提供網頁和服務。 此方法具有下列優點:

  • 簡單序列化:ASP.NET 是針對新式 Web 體驗所設計。 端點會自動將您的類別序列化為現成的正確格式 JSON。 不需要任何特殊設定。 您可以針對具有獨特需求的端點自訂序列化

  • 驗證和授權:針對安全性,API 端點具有對業界標準 JSON Web 權杖 (JWT) 的內建支援。 原則型授權可讓您彈性地在程式碼中定義功能強大的存取控制規則。

  • 與您的程式碼一起路由傳送:ASP.NET 可讓您使用屬性來定義內嵌於程式碼中的路由和指令動詞。 來自要求路徑、查詢字串和要求本文的資料,會自動繫結至方法參數。

  • 預設為 HTTPS:HTTPS 是新式專業 Web API 很重要的一部分。 其依賴端對端加密來提供隱私權,並可協助確保您的 API 呼叫不會在用戶端與伺服器之間遭到攔截和改變。

    ASP.NET 提供現成的 HTTPS 類別支援。 會自動產生測試憑證,並輕鬆地將其匯入以啟用本機 HTTPS,讓您可以在發佈應用程式之前,安全地執行和進行偵錯。

使用 .NET 應用程式共用程式碼和知識

您可以使用 .NET 技能和生態系統,將 Web API 的邏輯與使用 .NET 建置的其他應用程式 (包括行動、Web、桌面及服務) 共用。

使用 .NET HTTP REPL 測試 Web API

當您開發傳統網站時,通常會在網頁瀏覽器中檢視及測試您的工作。 Web API 會接受並傳回資料 (而非 HTML),因此,網頁瀏覽器不是最佳的 web-API 測試工具。

用來探索及與 Web API 互動的最簡單選項之一就是 .NET HTTP REPL。 REPL 代表「讀取-評估-列印迴圈」。 這是建置互動式命令列環境簡單且熱門的方式。 在下一個單元中,您將建立簡單的 Web API,然後使用 .NET HTTP REPL 來與其互動。

檢定您的知識

1.

下列何者「不是」使用 ASP.NET Core 建置 Web API 的理由?