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 ).
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"))
}
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)
}
// 创建一个 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) }
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)
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!