SwaggerHub 團隊最近前往德克薩斯州奧斯汀參加DockerCon 2017。 DockerCon 是全球最大的容器技術會議,匯集了來自 Docker 社群的 5,000 多名開發人員、DevOps、系統管理員等。
今年是什麼原因讓我們參加 DockerCon 呢?
過去一年,我們看到採用SwaggerHub 平台的軟體團隊在微服務架構方面投入了大量資金,呈現大幅成長。 在三天時間裡,我們有機會與處於微服務和 API 採用旅程不同階段的人們進行數百次對話。 很高興聽到這麼多人使用 Swagger 工具和 OpenAPI 規格來幫助實施他們的微服務架構,並了解我們如何持續發展 SwaggerHub,以幫助滿足 API 團隊的需求。 作為今年活動的後續行動,我們想分享在 DockerCon 2017 上從對話中獲得的一些重要見解。
1. OpenAPI (Swagger) 規格在轉向微服務的過程中扮演重要角色
從單體應用程式轉向微服務架構的組織,通常會依賴 API 來公開服務以彼此通信。為了更好地透過 API 公開服務,需要有一個通用的 API 介面,以準確說明每個服務應該做什麼。 而OpenAPI (Swagger) 規格 (OAS)已成為定義此合約的標準格式,提供一個通用的介面,以人類和機器可讀的方式定義用戶端和服務之間的 SLA。 在 DockerCon 上的一週裡,我們與之交談的團隊,使用 OAS 定義 API 的主要用例是為內部團隊生成使用其 API 所需的文件,並將Swagger UI 作為該規格最受歡迎的實作方式。
2. 大多數團隊仍然採用「程式碼優先」的 API 開發方法
關於設計優先的 API 開發方法或建構微服務的好處,已經有很多文章探討過。設計優先方法包括首先設計和定義微服務的介面,審查並穩定此合約,然後實作該服務。 但雖然設計優先可能是理想的選擇,但我們交談的大多數團隊仍然遵循程式碼優先的方法,他們使用開放原始碼工具的某種組合,從現有 API(在執行時間或建置時間)產生 Swagger 檔案。 對於我們交談的大多數人來說,決定採用「程式碼優先」的 Swagger 方法的原因是它比轉向設計優先的方法可以更快地實作。程式碼優先方法中,自動化更簡單的事實有助於加強此案例,許多函式庫都支援鷹架伺服器程式碼、功能測試和部署自動化。 了解更多:[免費下載] 如何將 Swagger 新增至現有 API
3. 樣式一致性是 API 團隊日益嚴重的問題
無論您的團隊使用何種架構來實作軟體系統,如果您的團隊認真看待良好的 API 開發人員體驗,您可能有一些指南讓您的團隊遵循。 但當我們與個人談論他們如何執行這些指南時,很明顯還有改進的空間。 我們從討論中聽到的四個常見趨勢是:
- 追蹤正在處理的所有 Swagger 檔案
- 處理現有 API 的版本控制
- 在整個開發人員團隊中執行樣式指南
- 讓跨多個服務重複使用常見設計物件更容易
SwaggerHub 的建構旨在透過為您的整個團隊提供一個中心位置,讓他們在整個 Swagger API 生命週期中工作,同時使用網域和樣式驗證器來驅動 API 設計的一致性和可重複使用性,來解決這些挑戰。 樣式驗證器確保您的 RESTful 介面符合基於您組織要求的標準藍圖。 這可能意味著確保所有介面都有 camelcase 運算符、在其回應封包中定義的範例,或使其模型在本地定義。在網域中,您可以儲存常見、可重複使用的語法(無論是模型還是請求-回應物件),這些語法可以快速地在公開您的微服務業務功能的多個 API 中參考。
4. API 管理解決方案在微服務架構中扮演重要角色,但設計是一個急需的解決方案
API 管理解決方案在微服務的協調中扮演著重要的角色。透過安全性、監控、分析和探索機制,這些平台可以幫助處理微服務架構中大量的 API。 但是,雖然許多 API 管理解決方案提供了設計功能,但對於 API 設計來說,也顯現了需要專用工具組的需求。良好的 API 設計對於任何公開或私有的 API 來說都非常重要。正如一位 Swagger 用戶在我們展位上的討論中所說:「你需要為內部團隊提供與外部開發人員相同品質的 API 使用體驗。」 當您設定好風格指南後,您需要一個工具來為您的 API 設計提供一流的處理。對於剛開始使用 Swagger 的團隊來說,像 Swagger Editor 這樣的開源工具可以提供編寫和更新定義的必要工具。對於需要將設計與 API 管理平台無縫整合的高級團隊來說,像 SwaggerHub 這樣的完整整合平台可以提供幫助。
5. API 團隊需要更好的方式來託管和管理 API 文件
無論您是使用 API 公開服務,還是在您自己的軟體架構中,擁有最新且易於存取的文檔都非常重要。這是我們聽到團隊首先開始實施 Swagger 的最大原因。但是,當您的 API 文檔從一個團隊中的幾個不同版本,變成幾十個甚至數百個不同的 API 時,維護這些文檔可能會成為一個問題。 我們從 Swagger 用戶那裡聽到的一個常見解決方案是將文檔託管在像 GitHub 或 Bitbucket 這樣的原始碼控制主機上。但是,雖然這些工具非常適合託管原始碼,但它們仍然無法讓您從一個中心位置輕鬆存取所有不同的文檔。因此,大多數團隊會尋找內部解決方案。 我們致力於在 SwaggerHub 中提供替代解決方案,讓您可以從一個集中託管的平台託管和維護所有 API 的文檔。SwaggerHub 可以作為您組織的內部 API 目錄,具有管理隱私、發布和取消發布版本的能力,甚至可以使用我們的企業方案在您自己的伺服器上託管。 在此處了解更多資訊。 感謝今年在 DockerCon 活動中光臨 SwaggerHub 展位的每個人!如果您有興趣開始使用 SwaggerHub,您可以在這裡免費註冊。或者聯繫團隊以獲得您問題的解答: [email protected]