Mac电脑下搭建go环境和gin框架并成功运行小demo

1.go环境搭建

地址 https://golang.google.cn/dl/


傻瓜式下一步
在这里插入图片描述
结束后打开命令行输入 go version
显示类似如下内容说明安装成功
go version go1.16.4 darwin/amd64

接下来配置环境变量
vim ~/.bash_profile

不存在的话会在你的home目录下创建一个同名文件,追加如下内容

说明:其实重要的就两个变量 GOROOT GOPATH 其他的可有可无

注意:这里GOROOT是你的go安装目录 GOPATH是后续的工程目录,意思就是后续go会认为这个你指定的目录你会在这个路径写代码

export GOROOT=/usr/local/go
export GOARCH=amd64
export GOOS=darwin
export GOPATH=/Users/zhaozhenjie/code/go

export GOBIN=$GOPATH/bin

export PATH=$PATH:$GOPATH/bin

在这里插入图片描述
按ESC 然后:x退出保存

最后需要执行命令 source ~/.bash_profile 让刚才的配置生效

接下来咋们到GOAPTH的目录地址下面去
mkdir bin
mkdir pkg
mkdir src

bin存在编译的二进制文件
pkg存放第三方包 类似于java的maven python的pip php的composer,我是这么理解的。
src 写你自己的代码用

差不多到gin框架安装时刻了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
希望你们看到的和我的差不多

这时候需要执行一条命令大概
go env -w GO111MODULE=on

下面这条命令用于解决卡顿
go env -w GOPROXY=https://goproxy.cn
这边我也不知道为什么 看了好多博客大概都是这么干的,反正我是折腾了一天多

接下来重要环节
go get -u github.com/gin-gonic/gin
在这里插入图片描述
等待执行结束以后大概就下载成功了
在这里插入图片描述
goland工程里面会有这些玩意

其实我到了这一步卡了好久,因为我总是无法成功引用gin相关的内容,一直报错

接下来我们要输入一条指令 --注意 init后面gin是一个随意的名字 还可以是gin-web ,test等
go mod init gin
显示如下内容执行成功
go: creating new go.mod: module gin

创建一个文件main.go可以不写东西 最后创建也可以

紧接刚才的init执行命令 go get github.com/gin-gonic/gin
显示结果:go get: added github.com/gin-gonic/gin v1.7.2

到了这里就差不多可以写demo了
这里是两个文件的内容
在这里插入图片描述
执行
在这里插入图片描述
执行后命令行显示如下
在这里插入图片描述
localhost:8080/
浏览器显示内容如下 就是因为404所以才成功了,因为我们只写了一条命令啥都没有很正常 如果不是404显示的直接就是拒绝访问
在这里插入图片描述
控制台也更新了
在这里插入图片描述
好了到这里我们成功了,下面贴上代码 辛苦各位运行一下。

package main

import "github.com/gin-gonic/gin"

func main(){
	router:=gin.Default()
	router.Run()
}

本文章写于2021年 回收站找回来的

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
可以按照以下步骤来混合使用gin框架和grpc框架写一个web服务并运行: 1. 安装gin和grpc框架: ```bash go get -u github.com/gin-gonic/gin go get -u google.golang.org/grpc ``` 2. 创建一个grpc服务: ```go package main import ( "context" "fmt" "net" pb "path/to/your/proto" // 导入你的protobuf文件 "google.golang.org/grpc" ) type server struct{} func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) { return &pb.HelloReply{Message: "Hello " + in.Name}, nil } func main() { lis, err := net.Listen("tcp", ":50051") if err != nil { panic(err) } s := grpc.NewServer() pb.RegisterGreeterServer(s, &server{}) fmt.Println("grpc server started on port 50051...") if err := s.Serve(lis); err != nil { panic(err) } } ``` 3. 创建一个gin服务: ```go package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello World!", }) }) fmt.Println("gin server started on port 8080...") router.Run(":8080") } ``` 4. 将grpc服务和gin服务结合: ```go package main import ( "context" "fmt" "net" pb "path/to/your/proto" // 导入你的protobuf文件 "github.com/gin-gonic/gin" "google.golang.org/grpc" ) type server struct{} func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) { return &pb.HelloReply{Message: "Hello " + in.Name}, nil } func main() { // grpc server go func() { lis, err := net.Listen("tcp", ":50051") if err != nil { panic(err) } s := grpc.NewServer() pb.RegisterGreeterServer(s, &server{}) fmt.Println("grpc server started on port 50051...") if err := s.Serve(lis); err != nil { panic(err) } }() // gin server router := gin.Default() router.GET("/", func(c *gin.Context) { // grpc client conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure()) if err != nil { panic(err) } defer conn.Close() client := pb.NewGreeterClient(conn) // call grpc service resp, err := client.SayHello(context.Background(), &pb.HelloRequest{Name: "world"}) if err != nil { panic(err) } c.JSON(200, gin.H{ "message": resp.Message, }) }) fmt.Println("gin server started on port 8080...") router.Run(":8080") } ``` 5. 运行服务: ```bash go run main.go ``` 现在,你就可以通过访问 `http://localhost:8080`,来调用grpc服务并获取响应了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值