本来写的一个 API 接口项目,现在抽空改成一个后台权限管理项目

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 工具。

废话了那么多,现在上项目地址: snowlyg/IrisApiProject


IrisApi

本来写的一个api接口项目,现在抽空改成一个后台权限管理项目

项目介绍

  • 采用 iris 框架目后台api IrisApiProject
  • 采用了 gorm 数据库模块 和 jwt 的单点登陆认证方式
  • 测试默认使用了 sqlite3 数据库
  • 修改了项目文件结构,重新采用了 models , controllers 的结构(上次用的那种方式实在是看不下去了)。
  • 用 vue 写了一个前端 IrisApiVueAdmin

项目目录结构

  • apidoc 接口文档目录
  • caches redis缓存目录
  • config 项目配置文件目录
  • controllers 控制器文件目录
  • database 数据库文件目录
  • middleware 中间件文件目录
  • models 模型文件目录
  • tmp 测试数据库 sqlite3 文件目录
  • tools 其他公用方法目录

api项目初始化

拉取项目

git clone https://github.com/snowlyg/IrisApiProject.git

加载依赖管理包

本来是用 godep 管理的,使用后发现还是是有问题。暂时不使用依赖管理包,依赖要自行下载。

项目配置文件 /config/config.toml

cp config.toml.example config.toml

运行项目

gowatch //安装 gowatch 后才可以使用这个命令,不然只能使用

go run main.go // go 命令

单元测试

http test

 go test -v  //所有测试

 go test -run TestUserCreate -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 文件


前端初始化

拉取项目

git clone https://github.com/snowlyg/IrisApiVueAdmin.git

安装依赖

npm install

启动项目

npm run dev

登录项目

输入地址 http://localhost:8080

//在 conig/config.toml 内配置 LoginUserNameLoginPwd

项目管理员账号 : username
项目管理员密码 : password

参考资料

有梦想的咸鱼

讨论数量: 1

666

2个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!