Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ringkasan contoh kod rangka kerja golang

Ringkasan contoh kod rangka kerja golang

WBOY
WBOYasal
2024-06-03 12:23:57796semak imbas

Contoh kod ini menunjukkan penggunaan rangka kerja Go, termasuk membina aplikasi web (Gin), mengurus API (Echo), bekerja dengan sistem teragih (Consul), menggunakan komunikasi dipacu peristiwa (NATS) dan mengurus pangkalan data menggunakan ORM (GORM ).

Ringkasan contoh kod rangka kerja golang

Go Contoh Kod Rangka Kerja: Membina Web Berkuasa dan Aplikasi Cloud Native

Pengenalan
Bahasa Go terkenal dengan kecekapan, kesesuaian dan keupayaan merentas platform, menjadikannya sesuai untuk membina web aplikasi ia berfungsi. Artikel ini menyusun contoh kod untuk pelbagai rangka kerja Go, merangkumi segala-galanya daripada pembangunan web kepada pengurusan API dan sistem yang diedarkan.

1. Rangka kerja web

Gin: Rangka kerja Web yang berprestasi tinggi dan ringan:

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.

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. Rangka kerja sistem teragih

Konsul:

Rangka kerja pengurusan konfigurasi dan penemuan perkhidmatan teragih yang ringan dan berprestasi:

// 创建一个 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. , platform komunikasi dipacu mesej:

// 创建一个 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. Rangka kerja pangkalan data

GORM:

Rangka kerja ORM (Pemetaan Perhubungan Objek) yang mudah dan cekap:

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)
Kesimpulan dan kod kefungsian ini

rangka kerja Go, membuktikan bahawa Go ialah pilihan yang sangat baik untuk membina aplikasi web dan asli awan yang teguh, cekap dan berskala.

Atas ialah kandungan terperinci Ringkasan contoh kod rangka kerja golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn