go-zero安装

dandan3年前程序开发2552

go版本1.20.2


go环境变量

export GOROOT=/Users/yelin/go_dev/go
export GOPATH=/Users/yelin/go_dev/project
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

下载goctl

GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest


安装protoc & protoc-gen-go

goctl env check -i -f --verbose


创建测试项目hellow,进入执行

go mod init hellow


创建内容

goctl api new hellow1


下载依赖

go mod tidy


在hellow1/logic/hellow1logic.go中写逻辑

func (l *Hellow1Logic) Hellow1(req *types.Request) (resp *types.Response, err error) {
// todo: add your logic here and delete this line
resp = &types.Response{
Message: "hello go",
}
return
}


运行

go run hellow1/hellow1.go -f hellow1/etc/hellow1-api.yaml



微服务版本

建立目录,如hellow_rpc,进入后

创建order服务

goctl api new order

创建user服务

goctl api new user

建立工作区

go work init
go work use order
go work use user
//难道实际测试好像没有自动生成,手动改写go.work
go 1.20
use (
./order
./user
)


创建user的rpc文件,/user/rpc/user.proto

syntax = "proto3";
package user;
  
// protoc-gen-go 版本大于1.4.0, proto文件需要加上go_package,否则无法生成
option go_package = "./user";
message IdRequest {
    string id = 1;
}
  
message UserResponse {
    // 用户id
    string id = 1;
    // 用户名称
    string name = 2;
    // 用户性别
    string gender = 3;
}
  
service User {
    rpc getUser(IdRequest) returns(UserResponse);
}

执行创建

goctl rpc protoc user.proto --go_out=./types --go-grpc_out=./types --zrpc_out=.


跑完后,可以把里面除了user.protoc外的内容都放到上一层,然后上一层的user.api可以删除



相关文章

opemim安装部署

前置准备:(1)安装golang环境(官网下linux包到服务器解压,设置环境变量到bin目录即可),并设置go代理:go env -w GOPROXY=https://proxy.golang.co...

go-zero学习

goland创建新项目,需要在设置->go->go模块里启用go模块集成,不然下载的包无法正常引入根据api文件内容生成文件 goctl api go&nbs...

centos后台运行程序

通过远程shell工具连上服务器,运行程序后,如果关闭工具,进程也会被结束。所以采用systemctl方式运行1、创建运行用户adduser newUserName2、编辑service脚本...

mac m1使用docker mysql踩坑

1、etcd版本用3.4.242、mysql镜像要用:mysql/mysql-server:8.0.323、mysql因为是8的版本,启动后本地没权限连接,需要进容器创建用户和添加权限:# ...

rem解决笔记本访问网站内容被放大的问题

一般win系统的笔记本,出厂默认就是系统缩放150%,导致虽然分辨率是1920*1080,可浏览器的视口宽度却只有1200多,整个页面内容也被放大了,导致页面混乱。mac m1笔记本也同样,分辨率不同...

通过frp进行内网穿透

因为ngrok会定义刷新域名,有点限制,如果没有服务器域名,用他合适,如果有自己的服务器、域名,则用frp:按照https://blog.csdn.net/mirage003/article/deta...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。