使用 Iris 框架写的一个后台 API 练手项目

dreamfish · · 1607 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# iris golang for api *最近一个月在从 Laravel 转到 Go ,练手写了一个项目,还没有写完,还在持续更新中。对比了多个框架 [gin](tps://github.com/gin-gonic/gin) , [echo](http://go-echo.org/middleware/key-auth/) , [beego](https://beego.me/) , [iris](https://iris-go.com/v10/start/) 多个框架 (如果想了解几个框架的详细对比可以看下这个链接 [Awesome Web Frameworks for Gophers](https://github.com/speedwheel/awesome-go-web-frameworks/blob/master/README.md#learning-curve) ,并且都尝试的写了一些小项目,这一次用 `宇宙最快框架 iris` 写了这个后台接口项目。* ##### 项目介绍 1. 使用了 [iris](https://iris-go.com/v10/start) 框架 2. 数据库使用 [gorm](http://gorm.io/zh_CN/docs/) 3. 数据库 也是使用了几个 orm 作对比 [xorm](ttps://www.kancloud.cn/kancloud/xorm-manual-zh-cn/56005) , [beego orm](https://beego.me/docs/mvc/model/orm.md) , [gorm](http://gorm.io/zh_CN/docs/)这个几 orm 都不错,可以都了解一下,想用哪一个看个人喜好。 4. 使用了 jwt 做单点认证,上面介绍的几个框架都是支持 jwt 认证的。iris 框架的 jwt 文档写的相对比较简单,我自己参考其他框架,做了一些小修改。 5. 单元测试 go 有 httptest 包支持 http 请求接口测试,而且功能已经很完善了(当然还没有 Laravel 那么方便,不过已经完全够用了)。在 iris 框架的测试例子基础上,做了一些简单封装方便自己写后面的开发。 没有 http 测试的支持的话,写代码,测试代码,修改bug的时候都会非常痛苦,特别是你的代码结构非常糟糕的时候。如果你还没有写单元测试的习惯,强烈推荐你去了解下 `TDD 测试驱动开发`。 6. iris 框架不像 beego 有自己的热启动命令工具。可以用第三方的 [gowatch](https://gitee.com/shyaoht/gowatch) 工具。 废话了那么多,现在上项目地址: [569616226/IrisApiProject](https://github.com/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 文件 --- ##### 参考资料 - [zuoyanart/pizzaCmsApi](https://github.com/zuoyanart/pizzaCmsApi) - [beego应用做纯API后端如何使用jwt实现无状态权限验证](https://www.cnblogs.com/lrj567/p/6209872.html) - [Go实现jwt](https://blog.csdn.net/zxy_666/article/details/80021331) - [Go实战--golang中使用JWT(JSON Web Token)](https://blog.csdn.net/wangshubo1989/article/details/74529333)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1607 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传