1、附件文件目录如下:
├── app # 应用目录
│ ├── common # 公共应用模块
│ ├── home # 测试接口(文章和产品数据)
│ └── controller.go # 应用控制器
├── bootstrap # 工具方法
├── global # 全局变量
├── model # 数据模型
├── resource # 静态资源和配置文件config.yml
├── route # 路由
├── runtime # 运行日志文件
├── tmp # 开发是使用fresh热编译 产生临时文件
├── utils # 工具包
├── go.mod # 依赖包管理工具
├── go.sum
├── main.go # main函数
└── README.md # 项目介绍
2、安装运行
运行git下面命令下载代码:
git clone https://gitee.com/huang_li_shi_admin/GoFlyBase.git
或者
git clone https://github.com/huanglishi/gofly_api.git
您现在安装golang开发环境(没有自行百度),然后再src目录新增一个目录下载源码后加压进去,在初始化mod:go mod tidy 然后go run main.go或者使用热编译bee run 或 fresh 。如何需要数据库请收到建一个数据库然后resource\settings.yml找到数据库配置修改成您的用户和密码或者直接在浏览器打开安装界面安装。到此已经可以运行起来了。
3、快速开发API接口
3.1在已经存在的模块下文件新增一个接口
找的添加文件位置,直接文件内添加新的接口即可,无需添加路由,框架自动为您加载路由。
3.2、新增一个控制类
在模块下新建一个控制器文件目录,例如在app/home下新建一个article文件夹(文章类)。然后再把article添加到controller.go控制器管理即可,代码如3.2的第二步。
3.2、新增一个模块
第一步:在app文件夹下新增您模块,然后再app/controller.go的 import ()添加您新增模块,例如home模块 _ "gofly/app/home" 代码如下
package controller
/**
* app路由引入口《引入模块控制器》
*
* 请把您使用包用 _ "gofly/app/home/XX"导入您编写的包 自动生成路由
* 不需要使用的模块则注释掉 例如home模块暂时用不到就注释掉,这样不占用资源,使用是取消注释即可。
* 路由规则:包路径“home/article” + 包中结构体“Cate”转小写+方法名(首字母转小写_ "gofly/app/business/datacenter"
即:http://xx.com/home/article/cate/get_list)
*/
import (
_ "gofly/app/common"
_ "gofly/app/home"
// _ "gofly/app/wxapp"
)
第二步:在模块目录下添加一个controller.go控制器管理文件,用了引入控制器文件,可以管理你先控制器文件需要使用,不要步import进来,这样您不要删除暂时不要的控制器。controller.go控制器管理代码如下:
package controller
/**
* 引入控制器
* 请把您使用包用 _ "gofly/app/home/XX"导入您编写的包 自动生成路由
* 不是使用则注释掉
* 路由规则:包路径“home/article” + 包中结构体“Cate”转小写+方法名
*/
import (
_ "gofly/app/home/article"//这个就是引用的文章控制器-不要时候删除或者注释掉就行
)
很简单两步就完成,开发中不好经常添加模块,比如您只发一个业务端,那你填写一个模块就够了,开发过程就在这个模块下新建控制器类就行。
第三步:添加一个方法
例如在文章的分类添加一个获取单条分类数据,就在app\home\article\cate.go内直接添加GetOne如下,无需添加路由。
// 获取单条分类数据
func (api *Cate) GetOne(c *gin.Context) {
id := c.DefaultQuery("id", "")
if id == "" {
results.Failed(c, "请传参数id", nil)
return
}
data, err := model.DB().Table("business_article_cate").Where("id", id).First()
if err != nil {
results.Failed(c, "获取单条分类数据失败", err)
} else {
results.Success(c, "获取单条分类数据成功!", data, nil)
}
}
保存后我们看到重新编译的终端打印出新增的方法api请求路径:
4.打包程序
#1.1 打包在windowz系统程序
go build main.go
#1.2如果刚打Linux先运行下面命令配置环境变量
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64
#2 Linux系统程序打包
SET GOOS=linux
SET GOARCH=amd64
go build
5.服务器部署
部署是把打包生成的二进制文件(Linux:gofly,windows:gofly.exe)和资源文件resource复制过去即可。
6.总结:
搭建框架的初衷是让可发变动简单,简单到让您一步就能完成一个接口,如果您还觉得不够简单省力,你可以去看看单服务版本,我们帮您集成了View层管理后台,您可以一键生成一个接口并生成对应api接口文档。这样简单快速,让您及您的公司减少开发时间成本,不用怀疑您已经在这个卷的不行社会中比一帮人有优势,Java,C#能和您比吗!人家在加班的时候您可以回家喝茶了!我们还在探索更简单、更快速的开发框架,如果您有办法达到更快,留言告诉我们,让我们快得像火箭一样。