Gofr - 簡化微服務開發的編程框架

背景介紹

在微服務開發過程中,我們常常遇到各類問題。例如,REST 默認的標準難以踐行、在企業級規模上的挑戰、數據庫狀態管理、錯誤管理等等。以往,我們需要手動進行配置、對各個部分進行維護和測試。但隨着 Gofr 的出現,這一切都可以得到解決。

今天要給大家推薦一個 GitHub 開源項目 gofr-dev/gofr,該項目在 GitHub 有差不多 1000 Star,用一句話介紹該項目就是:“An opinionated Go framework for accelerated microservice development”。

項目介紹

Gofr 是一個有見地的 Go 微服務開發框架。雖然可以使用 Gofr 編寫通用應用程序,但我們主要關注的是簡化微服務的開發。我們將專注於在 Kubernetes 中部署,並渴望提供開箱即用的可觀察性。這個項目已經被列入 CNCF Landscape (https://landscape.cncf.io/?selected=go-fr)。

Gofr 的主要優勢和特點包括:

1、簡單的 API 語法;

2、默認 REST 標準;

3、經過企業級規模的實戰測試;

4、強大的配置管理;

5、使用遷移的數據庫狀態管理;

6、內置中間件以及支持自定義中間件;

7、錯誤管理;

8、內置的數據存儲、文件系統、發佈 / 訂閱;

9、支持 gRPC;

10、鏈式超時控制;

11、支持靜態文件服務器;

12、WebSocket 支持;

13、內置防洪控制;

14、內置跟蹤、度量和日誌。

如何使用

如果你已經有一個 go 項目支持 go mod,你可以通過調用 go get gofr.dev 來獲取 gofr。如果你是一個新的 Go 項目從,你可以在一個空文件夾裏初始化你的 go 模塊,比如 go mod init test-service。然後創建 main.go 文件,輸入以下內容:

package main

import "gofr.dev/pkg/gofr"

func main() {
    app := gofr.New()

    app.GET("/", func(ctx *gofr.Context) (interface{}, error) {
        return "Hello World!", nil
    })

    app.Start()
}

接着獲取所有的依賴,例如 go get ./...。然後啓動服務器 go run main.go。會在默認的 8000 端口上啓動服務器。

項目推介

Gofr 的活躍開發和廣泛應用都驗證了其在微服務開發中的強大性能和實用性,尤其其已經得到 CNCF 的引用。

以下是該項目 Star 趨勢圖(代表項目的活躍程度):

更多項目詳情請查看如下鏈接。

開源項目地址:https://github.com/gofr-dev/gofr

開源項目作者:gofr-dev

以下是參與項目建設的所有成員:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Bi7GXZRhOtuAnvMzpaG0hg