ホームページ  >  記事  >  バックエンド開発  >  golang フレームワークのコード例のまとめ

golang フレームワークのコード例のまとめ

WBOY
WBOYオリジナル
2024-06-03 12:23:57797ブラウズ

これらのコード例は、Web アプリケーションの構築 (Gin)、API の管理 (Echo)、分散システムの操作 (Consul)、イベント駆動型通信 (NATS) の使用、ORM を使用したデータベース管理 (GORM) など、Go フレームワークの使用法を示しています。 )。

golang フレームワークのコード例のまとめ

Go フレームワークのコード例: 強力な Web およびクラウド ネイティブ アプリケーションの構築

はじめに
Go 言語は、その効率性、同時実行性、クロスプラットフォーム機能で知られており、Web およびクラウド ネイティブの構築に最適です。アプリケーションでは動作します。この記事では、Web 開発から API 管理、分散システムまですべてをカバーする、さまざまな Go フレームワークのコード例をまとめています。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。