Maison  >  Article  >  développement back-end  >  Résumé des exemples de code du framework Golang

Résumé des exemples de code du framework Golang

WBOY
WBOYoriginal
2024-06-03 12:23:57749parcourir

Ces exemples de code démontrent les utilisations du framework Go, notamment la création d'applications Web (Gin), la gestion d'API (Echo), l'utilisation de systèmes distribués (Consul), l'utilisation de la communication basée sur les événements (NATS) et la gestion de bases de données à l'aide d'un ORM (GORM). ).

Résumé des exemples de code du framework Golang

Exemple de code de framework Go : création d'applications Web et cloud natives puissantes

Introduction
Le langage Go est connu pour son efficacité, sa concurrence et ses capacités multiplateformes, ce qui le rend idéal pour créer des applications Web et cloud natives. applications ça marche. Cet article compile des exemples de code pour divers frameworks Go, couvrant tout, du développement Web à la gestion des API et aux systèmes distribués.

1. Framework Web

Gin: Un framework Web léger et performant:

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. Framework de gestion d'API

Echo: Un framework API RESTful minimaliste et performant:

.
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. Framework de système distribué

Consul : Un framework léger et performant de découverte de services distribués et de gestion de configuration :

// 创建一个 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. , plateforme de communication basée sur les messages :

// 创建一个 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. Framework de base de données

GORM : Un framework ORM (Object Relational Mapping) simple et efficace :

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)

ConclusionCes codes Les exemples mettent en évidence l'étendue et la fonctionnalité. du framework Go, prouvant que Go est un excellent choix pour créer des applications Web et cloud natives robustes, efficaces et évolutives.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn