iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
Cloud Native

.NET雲端魔法尊者之路系列 第 12

2023-鐵人賽.NET雲端魔法尊者之路 Day12 .NET篇 開發小助手 Swagger 以及 API 風格 RESTful API

  • 分享至 

  • xImage
  •  

大家好啊 ~ 上一篇有說要介紹我們最後開啟的一個神祕網站是啥 ? 今天就要來揭曉答案啦!

Swagger 是甚麼 ?

Swagger 是一個開發和維護 RESTful API 的工具和框架,它提供了一個互動式的界面,可以幫助開發人員設計、文件化、測試和使用 API。Swagger 的主要目標是提供一個統一的方式來描述和規範 API,以確保 API 的開發和使用過程更加流暢和一致。

Swagger 特點

  • API 文件化: Swagger 允許開發人員為他們的 API 創建詳細的文檔,包括 API 的端點、輸入參數、輸出結果、錯誤處理等信息。這樣的文檔使得其他開發人員可以快速理解和使用 API。

  • 互動式界面: Swagger 提供了一個互動式的 Web 界面,稱為 Swagger UI,它允許開發人員直接在瀏覽器中測試 API。使用者可以在該界面中發送請求,查看請求的回應,以確保 API 正確運作。

  • 自動化生成代碼: Swagger 可以生成客戶端和服務端的程式碼,以幫助開發人員更容易地使用 API。這些生成的程式碼可以用於不同的程式語言和框架,減少了手動編寫程式碼的工作量。

  • 支援多種語言和框架: Swagger 不僅限於特定的程式語言或框架,它支援多種主要的編程語言,包括 Java、C#、Python、Node.js 等,並且可以集成到常用的 Web 框架中,如 Spring、Express、Flask 等。

  • 規範 API: Swagger 使用 OpenAPI 規範(以前稱為 Swagger 規範)來描述 API。這個規範定義了一個標準的 JSON 或 YAML 格式,用於描述 API 的結構和細節。

看到這裡各位應該又有一個疑問,RESTful API又是甚麼東西 ?

RESTful API 是甚麼

RESTful API 是一種設計和開發網絡應用程式接口(API)的風格和方法,它遵循一組約定和原則,以實現簡單、輕量、可擴展和易於理解的通信模式。REST 是 "Representational State Transfer" 的縮寫,它由 Roy Fielding 在他的博士論文中首次提出,並已成為設計分佈式系統中 API 的一種流行方式。

RESTful API 的特性

  • 統一介面: 統一介面是任何 RESTful Web 服務設計的基礎。它指示伺服器以標準格式傳輸資訊。格式化資源在 REST 中稱為呈現。這種格式可以不同於伺服器應用程式上資源的內部呈現。例如,伺服器可以將資料存放為文字,但以 HTML 呈現格式傳送。

  • 無狀態: 在 REST 架構中,無狀態是指伺服器獨立於所有之前的請求,完成每個用戶端請求的通訊方法。用戶端可以按任何順序請求資源,並且每個請求都為無狀態,或與其他請求隔離。這種 REST API 設計約束意味著伺服器每次都能完全理解並滿足請求。

  • 分層系統: 在分層系統架構中,用戶端可以連線至用戶端與伺服器之間的其他授權中介,而且仍然會接收來自伺服器的回應。伺服器還可以將請求傳遞至其他伺服器。您可以將 RESTful Web 服務設計為在若干多層 (如安全性、應用程式和業務邏輯) 伺服器上執行,共同協同以滿足用戶端請求。這些層對用戶端仍然不可見。

  • 可快取性: RESTful Web 服務支援快取,這是在用戶端或中介裝置上存放某些回應以改善伺服器回應時間的程序。例如,假設您瀏覽的網站在每個頁面具有共同的頁首和頁尾影像。每次您瀏覽新的網站頁面時,伺服器都必須重新傳送相同的影像。為了避免此情況,用戶端在第一次回應後快取或存放這些影像,然後直接使用快取中的影像。RESTful Web 服務透過使用將自身定義為可快取或不可快取的 API 回應來控制快取。

  • 隨需編碼: 在 REST 架構風格中,伺服器可透過將軟體程式設計碼傳輸至用戶端,以臨時擴展或自訂用戶端功能。例如,當您在任何網站上填寫註冊表單時,您的瀏覽器會立即反白顯示您犯的任何錯誤,如錯誤的電話號碼。由於伺服器傳送的程式碼,它可以執行此操作。

結尾

今天介紹了Swagger 以及 RESTful API 下次就要開始實戰囉 ~ 掰掰

參考資料

https://aws.amazon.com/tw/what-is/restful-api/

https://mannhowie.com/rest-api


上一篇
2023-鐵人賽.NET雲端魔法尊者之路 Day11 .NET篇 建立 .NET Core專案
下一篇
2023-鐵人賽.NET雲端魔法尊者之路 Day13 .NET篇 實戰 .NET Core GET & POST
系列文
.NET雲端魔法尊者之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言