iris golang for api
最近一个月在从 Laravel 转到 Go ,练手写了一个项目,还没有写完,还在持续更新中。对比了多个框架 gin , echo , beego , iris 多个框架 (如果想了解几个框架的详细对比可以看下这个链接 Awesome Web Frameworks for Gophers ,并且都尝试的写了一些小项目,这一次用 宇宙最快框架 iris
写了这个后台接口项目。
项目介绍
- 使用了 iris 框架
- 数据库使用 gorm
- 数据库 也是使用了几个 orm 作对比 xorm , beego orm , gorm这个几 orm 都不错,可以都了解一下,想用哪一个看个人喜好。
- 使用了 jwt 做单点认证,上面介绍的几个框架都是支持 jwt 认证的。iris 框架的 jwt 文档写的相对比较简单,我自己参考其他框架,做了一些小修改。
- 单元测试 go 有 httptest 包支持 http 请求接口测试,而且功能已经很完善了(当然还没有 Laravel 那么方便,不过已经完全够用了)。在 iris 框架的测试例子基础上,做了一些简单封装方便自己写后面的开发。 没有 http 测试的支持的话,写代码,测试代码,修改bug的时候都会非常痛苦,特别是你的代码结构非常糟糕的时候。如果你还没有写单元测试的习惯,强烈推荐你去了解下
TDD 测试驱动开发
。 - iris 框架不像 beego 有自己的热启动命令工具。可以用第三方的 gowatch 工具。
废话了那么多,现在上项目地址: 569616226/IrisApiProject
项目初始化
拉取项目
git clone https://github.com/569616226/IrisApiProject.gits
加载依赖管理包
本来是用 godep 管理的,使用后发现还是是有问题。暂时不使用依赖管理包,依赖要自行下载。
项目配置文件 /config/config.toml
cp config.toml.example config.toml
运行项目
gowatch //安装了 gowatch 热加载工具可以直接运行
go run main.go // go 命令
// mac 如果报错 api 文档没有权限, 使用 sudo go run main.go
单元测试
http test
go test -v //所有测试
go test -run TestUserCreate -v //单个测试
// mac 如果报错 api 文档没有权限, 使用 sudo go test -v
api 文档使用
自动生成文档 (访问过接口就会自动成功) 因为原生的 jquery.min.js 里面的 cdn 是使用国外的,访问很慢。 有条件的可以开个 vpn ,如果没有可以根据下面的方法修改一下,访问就很快了
打开 apidoc/index.html 修改里面的
https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
国内的 cdn
https://cdn.bootcss.com/jquery/2.1.3/jquery.min.js
访问文档,从浏览器直接打开 apidoc/index.html 文件
参考资料
有疑问加站长微信联系(非本文作者))
