首頁  >  文章  >  後端開發  >  golang框架程式碼範例匯總

golang框架程式碼範例匯總

WBOY
WBOY原創
2024-06-03 12:23:57797瀏覽

這些程式碼範例展示了Go 框架的用途,包括建立Web 應用程式(Gin)、管理API(Echo)、處理分散式系統(Consul)、使用事件驅動通訊(NATS)以及使用ORM(GORM)管理資料庫.

golang框架程式碼範例匯總

Go 框架程式碼範例:建立強大的Web 與雲端原生應用程式

##簡介Go 語言以其高效、並發和跨平台能力而聞名,對於建立Web 和雲端原生應用程式非常有用。本文彙整了各種 Go 框架的程式碼範例,涵蓋從 Web 開發到 API 管理和分散式系統等各個領域。

1. Web 框架

Gin: 一個高效能、輕量級的Web 框架:

func main() {
    r := gin.Default()

    r.GET("/users/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.JSON(200, gin.H{
            "name": name,
            "message": "Hello " + name,
        })
    })

    r.Run()
}

2. API 管理框架

Echo: 一個高效能、極簡主義的RESTful API 框架:

func main() {
    e := echo.New()

    e.GET("/users/:id", func(c echo.Context) error {
        id := c.Param("id")
        return c.JSON(http.StatusOK, map[string]interface{}{
            "id":   id,
            "name": "John Doe",
        })
    })

    e.Logger.Fatal(e.Start(":1323"))
}

3. 分散式系統框架

Consul: 一個輕量級、高效能的分散式服務發現與設定管理框架:

// 创建一个 Consul 客户机
client, err := consul.NewClient(consul.DefaultConfig())
if err != nil {
    log.Fatal(err)
}

// 注册一个服务
err = client.Agent().ServiceRegister(&consul.AgentServiceRegistration{
    ID:      "user-service",
    Name:    "user-service",
    Port:    8000,
    Address: "127.0.0.1",
})
if err != nil {
    log.Fatal(err)
}

4. 事件驅動框架

NATS: 一個高效能、訊息驅動的通訊平台:

// 创建一个 NATS 连接
conn, err := nats.Connect("nats://127.0.0.1:4222")
if err != nil {
    log.Fatal(err)
}

// 创建一个发布者
publisher, err := conn.PublishAsync("orders", nil)
if err != nil {
    log.Fatal(err)
}

// 发送消息
publisher.Msg.Data = []byte("Hello World")
publisher.Publish()

// 创建一个订阅者
subscriber, err := conn.Subscribe("orders", func(m *nats.Msg) {
    log.Println("Received a message:", string(m.Data))
})
if err != nil {
    log.Fatal(err)
}

#5. 資料庫框架

GORM: 一個容易、有效率的ORM(物件關係映射)框架:

import (
    "fmt"

    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

// 创建一个 GORM 句柄
db, err := gorm.Open(mysql.Open("user:password@tcp(127.0.0.1:3306)/database"), &gorm.Config{})
if err != nil {
    log.Fatal(err)
}

// 创建一个 User 模型
type User struct {
    ID    uint    `gorm:"primary_key"`
    Name  string  `gorm:"not null"`
    Email string  `gorm:"unique;not null"`
    Age   int     `gorm:"not null"`
    Active bool    `gorm:"default:false"`
    JoinedAt time.Time `gorm:"autoCreateTime"`
}

// 执行查询并查看结果
results := db.Model(&User{}).Where("name = ?", "John").Find(&users)
if results.Error != nil {
    log.Fatal(results.Error)
}
fmt.Println(users)

結論這些程式碼範例突顯了Go 框架的廣度和功能,證明Go 是建立健壯、高效且可伸縮的Web 和雲端原生應用程式的絕佳選擇。

以上是golang框架程式碼範例匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn