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

dreamfish · 2018-11-30 16:00:32 · 1737 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2018-11-30 16:00:32 的文章,其中的信息可能已经有所发展或是发生改变。

iris golang for api

最近一个月在从 Laravel 转到 Go ,练手写了一个项目,还没有写完,还在持续更新中。对比了多个框架 gin , echo , beego , iris 多个框架 (如果想了解几个框架的详细对比可以看下这个链接 Awesome Web Frameworks for Gophers ,并且都尝试的写了一些小项目,这一次用 宇宙最快框架 iris 写了这个后台接口项目。

项目介绍
  1. 使用了 iris 框架
  2. 数据库使用 gorm
  3. 数据库 也是使用了几个 orm 作对比 xorm , beego orm , gorm这个几 orm 都不错,可以都了解一下,想用哪一个看个人喜好。
  4. 使用了 jwt 做单点认证,上面介绍的几个框架都是支持 jwt 认证的。iris 框架的 jwt 文档写的相对比较简单,我自己参考其他框架,做了一些小修改。
  5. 单元测试 go 有 httptest 包支持 http 请求接口测试,而且功能已经很完善了(当然还没有 Laravel 那么方便,不过已经完全够用了)。在 iris 框架的测试例子基础上,做了一些简单封装方便自己写后面的开发。 没有 http 测试的支持的话,写代码,测试代码,修改bug的时候都会非常痛苦,特别是你的代码结构非常糟糕的时候。如果你还没有写单元测试的习惯,强烈推荐你去了解下 TDD 测试驱动开发
  6. 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 文件


参考资料

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

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

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