一、go-zero介绍与环境准备
1.1.go-zero简介
go-zero是一个go语言的框架,类似于java中的spring boot和spring cloud。作者是国内go语言大神级人物,万俊峰Kevin。官方网址:go-zero 缩短从需求到上线的距离
go-zero功能非常强大,初学者建议从单体应用开始,再逐步深入。
1.2.开发环境
操作系统 :win11 数据库:mysql8.0
go语言版本:1.19.4(推荐>=1.18) goctl工具(作用:辅助生成一些代码)
开发工具:vscode
1.2.1.安装go语言
go version,验证安装
1.2.2.设置GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct
1.3.安装goctl
go install github.com/zeromicro/go-zero/tools/goctl@latest
C:\Users\63118>go install github.com/zeromicro/go-zero/tools/goctl@latest go: downloading github.com/zeromicro/go-zero/tools/goctl v1.4.3 go: downloading github.com/zeromicro/go-zero v1.4.3 go: downloading github.com/spf13/cobra v1.6.1 go: downloading github.com/zeromicro/go-zero v1.3.4 go: downloading github.com/logrusorgru/aurora v2.0.3+incompatible go: downloading github.com/withfig/autocomplete-tools/integrations/cobra v0.0.0-20220705165518-2761d7f4b8bc go: downloading github.com/iancoleman/strcase v0.2.0 go: downloading github.com/go-sql-driver/mysql v1.7.0 go: downloading github.com/emicklei/proto v1.11.1 go: downloading github.com/inconshreveable/mousetrap v1.1.0 go: downloading github.com/zeromicro/antlr v0.0.1 go: downloading github.com/lib/pq v1.10.6 go: downloading go.opentelemetry.io/otel v1.7.0 go: downloading go.opentelemetry.io/otel/trace v1.7.0 go: downloading golang.org/x/text v0.3.7 go: downloading github.com/zeromicro/ddl-parser v1.0.4 go: downloading github.com/prometheus/client_golang v1.12.2 go: downloading go.opentelemetry.io/otel/sdk v1.7.0 go: downloading go.opentelemetry.io/otel/exporters/zipkin v1.7.0 go: downloading go.opentelemetry.io/otel/exporters/jaeger v1.7.0 go: downloading google.golang.org/grpc v1.46.2 go: downloading google.golang.org/protobuf v1.28.0 go: downloading github.com/fatih/color v1.13.0 go: downloading go.uber.org/automaxprocs v1.5.1 go: downloading github.com/pelletier/go-toml/v2 v2.0.1 go: downloading github.com/go-logr/logr v1.2.3 go: downloading github.com/openzipkin/zipkin-go v0.4.0 go: downloading github.com/pelletier/go-toml v1.9.4 go: downloading golang.org/x/sys v0.0.0-20220429233432-b5fbb4746d32 go: downloading github.com/prometheus/client_model v0.2.0 go: downloading github.com/prometheus/common v0.32.1 go: downloading github.com/mattn/go-colorable v0.1.12 go: downloading github.com/mattn/go-isatty v0.0.14 go: downloading github.com/spaolacci/murmur3 v1.1.0 go: downloading github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210521184019-c5ad59b459ec go: downloading github.com/go-logr/stdr v1.2.2 go: downloading github.com/beorn7/perks v1.0.1 go: downloading github.com/cespare/xxhash/v2 v2.1.2 go: downloading github.com/golang/protobuf v1.5.2 go: downloading github.com/cespare/xxhash v1.1.0 go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369
验证安装是否成功
goctl -v
C:\Users\63118>goctl A cli tool to generate api, zrpc, model code GitHub: https://github.com/zeromicro/go-zero Site: https://go-zero.dev Usage: goctl [command] Available Commands: api Generate api related files bug Report a bug completion Generate the autocompletion script for the specified shell docker Generate Dockerfile env Check or edit goctl environment help Help about any command kube Generate kubernetes files migrate Migrate from tal-tech to zeromicro model Generate model code quickstart quickly start a project rpc Generate rpc code template Template operation upgrade Upgrade goctl to latest version Flags: -h, --help help for goctl -v, --version version for goctl Use "goctl [command] --help" for more information about a command. C:\Users\63118>goctl -v goctl version 1.4.3 windows/amd64
1.4.安装vscode
vscode安装省略
1.4.1.安装go 插件
1.4.2.安装goctl插件
1.5.mysql8创建数据库
mysql8安装省略
ip:192.168.58.130 数据库:gozero 用户名:gozero
create database gozero character set utf8mb4 collate utf8mb4_bin;
create user gozero@localhost identified with mysql_native_password by 'Gozero@123' password expire never;
grant all privileges on gozero.* to gozero@localhost;
create user 'gozero'@'%' identified with mysql_native_password by 'Gozero@123' password expire never;
grant all privileges on gozero.* to 'gozero'@'%';