安装
- 在Vmare Workstation虚拟机上的Ubuntu22.04操作系统上操作
准备golang开发环境
sudo apt install golang
如果安装成功,在终端输入go version,则会显示版本号,比如go1.18.1 linux/amd64
Go Module设置
为了避免意外,我们通过阿里云Go Module代理仓库服务进行框架的导入
简介
go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建
操作
1.使用go1.11以上版本并开启go module机制
export GO111MODULE=on
2.导出GOPROXY环境变量
export GOPROXY=https://mirrors.aliyun.com/goproxy/
Gorm安装
# 生成 mod 文件(切换到模块根目录)
go mod init modulename
# 清理无效依赖,增加缺失依赖
go mod tidy
# 在go.mod配置好后,才能安装gorm
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite
在当前文件夹下生成go文件,添加以下代码并运行来测试框架是否安装成功
package main
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// Migrate the schema
err = db.AutoMigrate(&Product{})
if err != nil {
return
}
// Create
db.Create(&Product{Code: "D42", Price: 100})
// Read
var product Product
db.First(&product, 1) // find product with integer primary key
db.First(&product, "code = ?", "D42") // find product with code D42
// Update - update product's price to 200
db.Model(&product).Update("Price", 200)
// Update - update multiple fields
db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // non-zero fields
db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
// Delete - delete product
db.Delete(&product, 1)
}
安装Kitex
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
- 通过
export GOPATH=~/go确保GOPATH环境变量已经被正确地定义,并且export PATH=$GOPATH/bin:$PATH将$GOPATH/bin添加到PATH环境变量之中,请勿将GOPATH设置为当前用户没有读写权限的目录 - 安装 kitex:
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest - 安装 thriftgo:
go install github.com/cloudwego/thriftgo@latest - 安装成功后,可以通过
kitex --version与thriftgo --version查阅到具体的版本号
测试运行
将代码放置于 $GOPATH/src 下,需在 $GOPATH/src 下创建额外目录,进入该目录后再获取代码:
mkdir -p $(go env GOPATH)/src/github.com/cloudwego
cd $(go env GOPATH)/src/github.com/cloudwego
# 克隆该示例仓库到本地
git clone https://github.com/cloudwego/kitex-examples.git
-
进入示例仓库的
hello目录cd kitex-examples/hello -
运行 server
go run .效果大致如下:
-
运行 client
另起一个终端后,
go run ./client
注意:每次重新启动后均需要配置好环境,因此 通过export GOPATH=~/go确保 GOPATH 环境变量已经被正确地定义,并且export PATH=$GOPATH/bin:$PATH将$GOPATH/bin添加到 PATH 环境变量之中
安装hertz
安装命令行工具 hz
首先,我们需要安装使用本示例所需要的命令行工具 hz:
- 确保
GOPATH环境变量已经被正确地定义(例如export GOPATH=~/go)并且将$GOPATH/bin添加到PATH环境变量之中(例如export PATH=$GOPATH/bin:$PATH);请勿将GOPATH设置为当前用户没有读写权限的目录 - 安装 hz:
go install github.com/cloudwego/hertz/cmd/hz@latest
更多 hz 使用方法可参考: hz
确定代码放置位置
- 若将代码放置于
$GOPATH/src下,需在$GOPATH/src下创建额外目录,进入该目录后再获取代码:
$ mkdir -p $(go env GOPATH)/src/github.com/cloudwego
$ cd $(go env GOPATH)/src/github.com/cloudwego
- 若将代码放置于 GOPATH 之外,可直接获取
生成/编写示例代码
- 在当前目录下创建 hertz_demo 文件夹,进入该目录中
- 生成代码
hz new - 整理 & 拉取依赖
$ go mod tidy
- 生成
go.mod文件
$ go mod init hertz_demo
- 整理 & 拉取依赖
$ go mod tidy
运行示例代码
完成以上操作后,我们可以直接编译并启动 Server
$ go build -o hertz_demo && ./hertz_demo
效果大致如下