go-zero学习及使用中遇到的问题
1 go-zero入门–单体服务demo
参考1:go-zero入门–单体服务demo
推荐先阅读参考1。
1.1 单体服务【官方示例】
1.1.1 创建greet服务
goctl api new greet
1.1.2 目录结构
.
├── go.mod
├── go.sum
├── etc
│ └── greet-api.yaml
├── greet.api
├── greet.go
└── internal
├── config
│ └── config.go
├── handler
│ ├── greethandler.go
│ └── routes.go
├── logic
│ └── greetlogic.go
├── svc
│ └── servicecontext.go
└── types
└── types.go
1.1.3 编写逻辑
greet/internal/logic/greetlogic.go
func (l *GreetLogic) Greet(req *types.Request) (resp *types.Response, err error) {
// todo: add your logic here and delete this line
return &types.Response{
Message: "Hello go-zero:" + req.Name,
}, nil
}
1.1.4 启动并访问服务
启动:在greet目录下执行:
go run greet.go -f etc/greet-api.yaml
访问:http://localhost:8888/from/you
注意:
- 端口的设置是在
etc/greet-api.yaml中。 - 访问地址中的最后资源只能是
you或me,否则会报错,这个是在greet.api中配置的。
1.2 修改GET入参
1.2.1 去除options限制的入参值
- 修改
greet/greet.api文件
type Request {
Name string `path:"name,options=you|me"`
}
改为:
type Request {
Name string `path:"name"`
}
- 重新生成代码
cd ~/go-zero-s

该文详细介绍了使用Go-Zero构建单体服务和微服务的步骤,包括创建服务、修改API参数、添加POST请求、使用Swagger以及goctl的相关命令。还特别提到了在greet.api文件中配置HTTP方法和服务处理的注意事项。
最低0.47元/天 解锁文章
5905

被折叠的 条评论
为什么被折叠?



