1 Star 1 Fork 3

大CC / go语言框架

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

开发说明

1、将代码下载到GOPATH的src目录下面,并且将项目目录名称改成 alpaca_demo

2、数据库脚步在 doc/sql下面

3、环境相关的配置文件在dev下面,具体使用哪一个文件是由环境变量ENV_MODE决定,默认是使用development.json

4、运行或者调试cmd/alpaca下面的main函数

5、浏览器中打开http://127.0.0.1:9999/web/admin, 默认用户名admin,密码111111

img

输入用户名、密码登录成功后,内容如下

img

目录说明

主要的几个目录的解释如下

img


-- app 目录放项目代码

-- app/api 放接口调用的入口函数

-- app/api/admin 是后台管理的模块的接口

-- app/api/v1 是前台模块的接口

-- app/bootstrap 目录放项目启动时候,初始化的一个函数,例如加载配置文件,配置log,启动gin的路由监听等

-- app/common 存放公共调用函数,例如接口的返回状态码,日志log,链接mysql,加密、解密函数等待

-- app/config 存放配置文件的目录,要注意这里和env目录的区别,env目录下是为了项目在不同的环境下加载不同的配置文件,一些固定不变的配置可以放到 app/config下

-- app/models 存放数据库访问的相关函数,一般是一个数据表 对应一个文件

-- app/routers 存放路由配置信息

-- app/service 存放编写复杂的业务逻辑


-- cmd 存放项目的入口文件


-- doc 存放一些文档资料,例如sql脚步也放到这里了


-- env 存放环境相关的配置,具体使用哪一个文件是由环境变量ENV_MODE决定,默认是使用development.json


-- storage 存放程序运行时的一些配置,例如日志,程序pid默认放到这里了


-- vendor 项目的依赖包在这里,用govendor管理


-- web 静态资源目录在这里


设计架构

入口函数内容如下:

img

代码的总体结构设计如下图:

img

bootstrap 包是启动相关的函数。main函数调用bootstrap包中的函数初始化配置信息,如加载配置文件,配置log,开启http监听等。

common包 里面是一些公用函数,任何其他包都可以引用common包,但是common包禁止引用除了vendor以外的其他一切包

api接口 函数可以引用common包、models包、services包等实现具体的业务逻辑

services包 函数可以引用common包,models包实现具体的业务逻辑

models包 可以引用common包,但是不可以引用services包

Go语言初学经常会遇到包循环引用的问题,因此梳理清晰包与包直接的调用关系很重要

log服务

log服务使用的是logrus框架,在app/bootstrap/log 中进行初始化配置

common.Log 是一个logrus的实例,使用log的时候,可以直接使用common.Log.Info(""log内容") 函数记录log

img

config服务

config服务基于viper框架搭建,加载env环境变量使用是viper,在app/bootstrap/config 中进行初始化配置

并且封装了一个config包,在app/config下面,使用时候,可以直接使用这个包。

img

mysql服务

mysql服务使用的gorm框架

建立链接的函数是app/common/mysql.go里面的 Mysql()

主要的操作封装在了models

img

Http服务

Http服务使用的是gin框架

在 app/bootstrap/router 中进行初始化配置,路由配置文件在 app/routers中

img

获取Http服务请求参数

可以使用gin框架提供的方法进行获取http服务的请求参数

也可以使用实例中封装的 api.Input(c, "UserName", "") 函数获取

返回Http服务的请求结果

可以使用gin框架提供的方法进行获取http服务的请求参数

也可以使用实例中封装的 api.Output(c, res, err) 返回结果

img

Http返回结果的设计

返回结果包括三部分,code、data、error

code必有,内容用字符串表示,不是数字

data是在有请求结果集的时候,用于放结果集

error是在出错的时候会用

code 有三大类

** 结果正常 ** code:"success"" 表示请求正常

** 用户错误 **

格式就是 fail.xxx ,以fail开头,后面接具体错误内容,用逗号分割,例如:

code:"fail.param.null.password" 可以表示用户输入的密码是空

** 系统错误 **

code:"error"" 表示系统内部错误,例如mysql没恋上,其他panic错误

返回的code放在了 app/common/code包里面

img

后台管理Web段

后台管理Web段使用的是alpaca-spa框架

在 app/web/admin里面

参考资料

go语言参考资料

gin框架

gorm框架

logurs框架

viper框架

alpaca-spa框架

沟通交流

有问题可以加入QQ群或者我的微信交流沟通

QQ群

img

微信,添加时请做好备注

MIT License Copyright (c) 2020 大弹簧 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

分享一下整理的go语言框架,其中整理了http服务、日志log、配置文件config、定时任务、mysql、gorm、http返回code 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/cc-sponge/alpaca_demo.git
git@gitee.com:cc-sponge/alpaca_demo.git
cc-sponge
alpaca_demo
go语言框架
master

搜索帮助