go语言web框架beego安装(go mod方式)

Python016

go语言web框架beego安装(go mod方式),第1张

go语言web框架beego安装(go mod方式)_不忘初心,方得始终-CSDN博客

重要:将bee命令放到GOROOT/bin目录下,这步很关键

cp bee /usr/local/go/bin/

注:或者可以将GOPATH/bin设置为环境变量

echo ’export PATH=" PATH"' >>~/.bashrc

source ~/.bashrc

router路由下方法名要大写,访问权限

wq保存

生效环境变量: source /etc/profile

go build -o abc.exe可指定编译后的文件名

Golang常用环境变量说明与设置详解

环境变量GOBIN表示我们开发程序编译后二进制命令的安装目录。

当我们使用go install命令编译和打包应用程序时,该命令会将编译后二进制程序打包GOBIN目录,一般我们将GOBIN设置为GOPATH/bin目录。

export GOBIN=$GOPATH/bin

Go get包管理mod

windows下默认项目路径在go安装目录的src下(beego)

由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少,所以go web框架简直就是百花齐放。从老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且还有一些类似于 chi 这种router。个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可。

本次测试主要是gin iris echo 这三个框架。侧重在于高性能,从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面。

为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:

gin:

iris:

echo:

由于要测试5种body样本,4种场景,4个框架,因此把重点数据筛选出来(吞吐量、错误率和99%Line,重要性依次递减),结果都绘制了图形,方便比对查看。

综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架,gin的优势比其他稍微大点,iris次之,而echo相应差一点。

本次测试只是简单测试了一下3个框架的并发和json相关。对比结果,不包括生态和工具的完善度等等。如果测试有什么不完善的地方,欢迎交流。

另外欢迎大家试用和star另外一个web框架 baa ,为了避嫌我没有贴出baa的数据,性能测试处于gin之后和iris之间。

一个好的 API's,必然离不开一个好的API文档

要开发纯手写 API 文档,不存在的 :=)

项目地址:https://github.com/EDDYCJY/go-gin-example

1、go get

若 $GOPATH/bin 没有加入$PATH中,你需要执行将其可执行文件移动到$GOBIN下

2、gopm get

该包有引用golang.org上的包,若无科学上网,你可以使用 gopm 进行安装

同理将其可执行文件移动到$GOBIN下

注:三个包都有一定大小,安装需要等一会或要科学上网

编写API注释

Swagger 中需要将相应的注释或注解编写到方法上,再利用生成器自动生成说明文件

gin-swagger 给出的范例:

我们可以参照 Swagger 的注解规范和范例去编写

详细的注解请参见 go-gin-example。以确保获取最新的 swag 语法

我们进入到gin-blog的项目根目录中,执行初始化命令

完毕后会在项目根目录下生成docs

docs/

├── docs.go

└── swagger

├── swagger.json

└── swagger.yaml

我们可以检查 docs.go 文件中的 doc 变量,详细记载中我们文件中所编写的注解和说明

大功告成,访问一下 http://127.0.0.1:8000/swagger/index.html, 查看 API 文档生成是否正确。是不是很帅?

本系列示例代码