• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go-zero尝试运行输出hello-world

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

https://github.com/tal-tech/zero-doc/blob/main/doc/goctl.md

安装go-zero protoc goctl

这些参考文档即可安装成功

操作步骤

ZSH_THEME="bira"

╭─mac@macdeMacBook-Pro /www/go ‹master*› 
╰─$ cd /www/go
╭─mac@macdeMacBook-Pro /www/go ‹master*› 
╰─$ goctl api new hello 
╭─mac@macdeMacBook-Pro /www/go ‹master*› 
╰─$ cd hello  

此时的hello.api为

type Request {
	Name string `path:"name,options=you|me"`
}

type Response {
	Message string `json:"message"`
}

service hello-api {
	@handler HelloHandler
	get /from/:name(Request) returns (Response);
}

修改 为下面的

type HelloRequest {
	Name string `path:"name"`
}

type HelloResponse {
	Message string `json:"message"`
}

service hello-api {
	@handler HelloHandler
	get /hello/:name(HelloRequest) returns (HelloResponse);
}

执行命令重新生成

╭─mac@macdeMacBook-Pro /www/go/hello ‹master*› 
╰─$ goctl api go -api hello.api -dir .
etc/hello-api.yaml exists, ignored generation
internal/config/config.go exists, ignored generation
hello.go exists, ignored generation
internal/svc/servicecontext.go exists, ignored generation
internal/handler/hellohandler.go exists, ignored generation
internal/logic/hellologic.go exists, ignored generation
Done.

执行命令 go mod tidy 下载相关依赖

╭─mac@macdeMacBook-Pro /www/go/hello ‹master*› 
╰─$ go mod tidy                          
go: finding module for package github.com/tal-tech/go-zero/rest
go: finding module for package github.com/tal-tech/go-zero/core/logx
go: finding module for package github.com/tal-tech/go-zero/rest/httpx
go: finding module for package github.com/tal-tech/go-zero/core/conf
go: found github.com/tal-tech/go-zero/core/conf in github.com/tal-tech/go-zero v1.1.4

进入目录 internal/logic编辑hellologic.go

package logic

import (
	"context"

	"hello/internal/svc"
	"hello/internal/types"

	"github.com/tal-tech/go-zero/core/logx"
)

type HelloLogic struct {
	logx.Logger
	ctx    context.Context
	svcCtx *svc.ServiceContext
}

func NewHelloLogic(ctx context.Context, svcCtx *svc.ServiceContext) HelloLogic {
	return HelloLogic{
		Logger: logx.WithContext(ctx),
		ctx:    ctx,
		svcCtx: svcCtx,
	}
}

func (l *HelloLogic) Hello(req types.HelloRequest) (*types.HelloResponse, error) {
	// 新增的代码开始
	resp := types.HelloResponse{Message: req.Name}
	
	return &resp, nil
	// 新增的代码结束
}

hellohandle.go里面也有个Request要改为HelloRequest

因为我是把原来api两个request删了。估计是覆盖没覆盖成功

接下来运行

╭─mac@macdeMacBook-Pro /www/go/hello ‹master*› 
╰─$ go run hello.go -f etc/hello-api.yaml                                   2 ↵
Starting server at 0.0.0.0:8888..

此时浏览器访问 http://localhost:8888/hello/world

返回结果

{
message: "world"
}

输入其他的就返回什么


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言学习笔记说明发布时间:2022-07-10
下一篇:
GoWeb开发之Revel-插件发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap