點擊這里,查看剩余10個高效有用的Go 語言微服務開發框架
Beego https://beego.me/
Beego 框架提供了很多標准附加功能,例如全功能路由器和可用於執行 CRUD 操作的對象到數據庫映射工具。Bee 是 Beego 愛好者的最愛,它是一個快速而強大的命令行工具,用於構建、更新、打包和部署應用程序。Bee 可以從模板生成源代碼,並保持數據庫的最新狀態。
Buffalo https://gobuffalo.io/en
Buffalo 團隊需要能夠將 Web 應用程序的所有部分組裝在一起的東西,包括應用程序本身的一些設計。他們把能夠安裝在一起的很多部件叫作“生態系統”。如果你想要路由——很少有人不需要——Buffalo 就包含了 Gorilla/Mux。如果你需要模板,Buffalo 傾向於使用 Plush,而不是使用內置的 Go 語言模板機制。數據庫連接模塊集合 Pop 可以幫你將數據庫信息轉換為 Go 對象。你還可以找到連接數據庫、處理 cookie 以及完成其他任務的標准方法。
Cobra https://github.com/spf13/cobra
有時候,你只需要一個命令行界面。Cobra 提供了 CLI 的所有標准功能,因此你不必浪費時間實現代碼來查找 -h 或 -help 標志。如果你的微服務需要對具有大量標志和其他功能的命令行調用做出響應,那么可以考慮集成 Cobra。
Docker你當然可以在辦公室服務器小黑屋里的裸機上運行微服務,但越來越多的人將他們的代碼捆綁在 Docker 容器中,並將容器發到雲端。小型的包更容易處理大量不同的代碼塊,當你對微服務架構的願景要求你創建很多小的獨立代碼塊時,這將是一項有價值的服務。
值得一提的是,Docker 是用 Go 語言開發的,盡管在部署 Docker 容器時你可能永遠不會想到這一點。Docker 社區版是開源的,所以如果有必要,你可以參與其中,但很可能你只是將 Docker 作為部署微服務的工具。Go 語言愛好者之所以想要記住 Docker 是用 Go 語言開發的這一事實,是因為無處不在的 Docker 有力地證明了他們對這門語言的支持。
Echo https://echo.labstack.com/
Echo 是一個極簡框架,但它提供了很多最重要的組件。路由器可以將 URL 拆解,然后將拆解的各個部份轉換為參數,因此你無需自行解析它們。然后,你可以混合使用身份驗證、表單解析、壓縮和合理性限制。你可以專注於從函數中返回正確的信息。
Errors https://github.com/juju/errors
有時候,API 的用戶會傳遞錯誤的參數。你可以自己處理這些參數,也可以把它們創給 Errors,這是一個可以自動執行大部分跟蹤的庫,方便進行調試。當發生錯誤時,Errors 會使用注釋來詳細說明出錯的地方和位置。
Gin https://github.com/gin-gonic/gin
Gin 是 Martini( https://github.com/go-martini... )的下一代框架。可以說,Gin 拋棄了那些額外的東西,專注於提供最有用的部分。花費大量時間構建 Node.js 微服務的開發人員會感到賓至如歸。你可以實例化一個對象,然后附加函數來處理特定的調用,這樣就可以創建一個微服務。Gin 負責處理路由,而你的函數處理業務邏輯。如果不去考慮標點符號,它的代碼甚至看起來有點像 Node.js 代碼。
Ginkgo https://onsi.github.io/ginkgo/
測試可能是微服務開發當中最具挑戰性的事情。Ginkgo 通過行為驅動測試擴展了標准 Go 發行版的內置測試機制。Ginkgo 提供了一種高級機制,用於指定函數或服務應該產生哪些結果。結果通常使用 Ginkgo 提供的 Gomega 匹配器( http://onsi.github.io/gomega/ )進行評估,但如果你願意,也可以使用不同的匹配器庫。
Ginkgo 是一個全面的框架,提供了各種選項,用於設置測試數據、運行測試以及在事后釋放測試數據。你只需要描述結果,然后讓 Ginkgo 處理其他的事情。
Goa https://github.com/goadesign/goa
如果你是一個曾經使用 Ruby 和 Praxis 框架的開發人員,或者是一個欣賞設計語言的強大力量人,那么你會在 Goa 中找到很多你喜歡的東西。你本身不需要編寫 Go 代碼。你使用 Goa DSL 為 API 編寫設計規范,然后 Goa 將其轉換為可執行的 Go 代碼。DSL 針對微服務 API 進行了優化,並強制你的設計遵循標准的架構。
Gorilla http://www.gorillatoolkit.org/
Gorilla 項目提供了一系列你需要的模塊。Gorilla 的 Mux( http://www.gorillatoolkit.org... )路由器被很多其他框架使用,因為它太好用了。很多用戶之所以使用 Gorilla,是因為 websocket( http://www.gorillatoolkit.org... )。
Gotify https://github.com/gotify/server
同步一組微服務所面臨的一個挑戰是建立有效的消息傳遞節點。Gotify 是一個簡單的服務器,用於發送和接收消息,將你的微服務集合與持續存儲的消息組合在一起。最有用的部分可能是它的 Web 接口,可幫助開發者應對最令人頭疼的調試問題。
關鍵字:開發 框架 前端開發 Go API 微服務