在 go 框架中管理第三方服务依赖:go modules: 存储依赖项于 go.mod 文件中,使用 go get 和 go mod tidy 命令管理。vendor 目录: 存储第三方依赖项副本。第三方依赖管理工具: dep、glide、godep 等,提供更高级的依赖管理功能。实战案例:使用 gin 和 mysql通过 go modules 或 vendor 目录安装 gin 和 mysql 依赖项。使用 gin 创建 web 服务器。初始化连接 mysql 数据库。使用数据库查询和插入功能。
Go 框架中第三方服务的依赖管理
在 Go 应用程序中集成第三方服务时,依赖管理至关重要。本文介绍了在 Go 框架中管理依赖关系的不同方法,并提供了一个实战案例。
使用 Go Modules
立即学习“go语言免费学习笔记(深入)”;
Go Modules 是 Go 1.11 版本引入的依赖管理系统。它将依赖关系存储在 go.mod 文件中,并使用 go get 和 go mod tidy 命令来获取和管理依赖项。
// go.mod
module myapp
require (
<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15841.html" target="_blank">git</a>hub.com/gin-gonic/gin v1.7.7
github.com/go-sql-driver/mysql v1.6.0
)
使用 Vendor 目录
在 Go 1.10 版本之前,Go 生态系统使用 Vendor 目录来管理依赖性。Vendor 目录包含的所有第三方依赖项的副本。
// vendor/github.com/gin-gonic/gin
// ...
// vendor/github.com/go-sql-driver/mysql
// ...
使用依赖管理工具
除了 Go Modules 和 Vendor 目录之外,还有其他第三方工具可以用来管理依赖关系,例如:
- dep(https://github.com/golang/dep)
- glide(https://github.com/Masterminds/glide)
- godep(https://github.com/tools/godep)
实战案例:使用 Gin 和 MySQL
现在,让我们通过一个实战案例来演示如何使用 Gin 和 MySQL 作为第三方服务的示例。
1. 安装依赖关系
使用 Go Modules:
go get github.com/gin-gonic/gin
go get github.com/go-sql-driver/mysql
使用 Vendor 目录:
go mod vendor
2. 创建 Gin Web 服务器
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Hello World!",
})
})
r.Run()
}
3. 连接 MySQL 数据库
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func init() {
dsn := "user:password@tcp(127.0.0.1:3306)/database_name"
db, _ = sql.Open("mysql", dsn)
}
func GetUsers() []User {
rows, _ := db.Query("SELECT * FROM users")
var users []User
for rows.Next() {
var u User
_ = rows.Scan(&u.ID, &u.Name, &u.Email)
users = append(users, u)
}
return users
}
4. 添加用户
func AddUser(u *User) {
stmt, _ := db.Prepare("INSERT INTO users (name, email) VALUES (?, ?)")
_, _ = stmt.Exec(u.Name, u.Email)
}