golang实战使用gin+xorm搭建go语言web框架restgo详解2 框架基本架构
2018-02-19 10:03
1066 查看
2、框架基本结构
一个典型的项目框架,文件夹目录如下,下面我们来逐一说明这些文件夹或文件的作用.2.1 控制器文件夹controller
该目录主要存储控制器文件,特别地,我们做如下约定1、 文件名称首字母一律大写,后面必须添加Controller结尾,用做标识这是控制器文件,如UserCtrl,我们就能一目了然地看到这是一个控制器文件
2、 我们约定控制器文件名必须和业务强相关,比如用户相关的控制器,我们需要设计文件名为UserCtrl.go,资源管理相关的控制器,我们需要设计名称为AttachCtrl
3、 文件名称一律区分大小写
2.2 实体目录entity
该目录主要存储数据库对应模型文件,和java类似,我们做如下约定1、 文件名称首字母一律大写,并与数据库内对应的表名称保持一致。
2、 数据库表名称中,以下划线开头的字母,对应的实体类中相应的字段必须大写.如user_info类,对应的实体名称必须为UserInfo.go
3、 文件名称一律区分大小写
2.3 视图目录view
视图目录主要包括如下子目录1、 公共模板目录public,该目录下存放公共模板如用于统一设置head的head.html,用于统一设置底部的foot.html,用于统一错误页面的error.html
2、 应用模块目录,我们强烈建议每一个模块用一个目录来独立存放,该方式结构接单清晰明了.
3、 假设用户模块有注册,登录,密码找回,个人资料等四个逻辑页面,那么我们可以建立User模块,下辖登录页面login.html,注册页面 register.html,密码重置页面resetpwd.html,个人资料页面profile.html.
2.4 静态资源asset
该目录主要用于存放静态资源,一般情况下,该目录下存放如下几个子目录1、 image,用于存放静态图片文件
2、 css,用于存放css文件
3、 js,用于存放js文件.我们常页面的js逻辑文件也投放到该目录下,该目录可以建立子目录,和view下的子目录一一对应
4、 font,一般情况下,我们使用bootstrap框架时,会用到字体文件,那该文件夹用于存储字体文件
5、 plugin,该文件夹用于存放较大的插件,如kindedit插件,bootstarp,adminlte.等,在这里,我们将包含css和js或者image的文件包叫做插件
静态资源独立存放是有好处的,将来可以非常方别地实施动静态分离.
2.5 业务层目录service
Service文件夹用于存放业务层逻辑,所谓业务层是指具体某一业务实现的方式,对外提供接口,对内调用数据库操作。业务层命名我们做如下约定1、 所有业务逻辑名称首字母必须大写,且只能为字母。
2、 所有业务逻辑文件必须以Service结尾
打个比方,对于用户业务逻辑,我们定义文件名称UserService.go即可
2.6 参数封装层model
我们将每一个业务的请求参数封装成一个struct,比如说,对于用户管理模块,我们可能用到根据关键字如姓名、电话等查询用户信息、根据注册时间查询用户信息的,以及分页支持、排序支持等。因此我们可以将这些参数封装成一个bean,比如本例子中我们可以作如下封装type PageArg struct{
Kword string `form:”kword” json:”kword”`
Datefrom time.Time `form:”datefrom” json:”datefrom”`
Dateto time.Time `form:”dateto” json:”dateto”`
Desc string `form:”desc” json:”desc”`
Asc string `form:”asc” json:”asc”`
Pagefrom int `form:”pagefron” json:”pagefrom”`
Pagesize int `form:”pagesize” json:”pagesize”`
}
考虑到有些参数是常用的,我们可以将UserArg做如下定义
Type UserArg struct{
PageArg
//…… other arg
}
2.7 核心包restgo
核心包内置我们的应用管理框架以及我们我们需要用到的括常用的工具类软件,具体描述如下1、 orm封装工具OrmEngin.go
2、 常用自定义函数数FunMap.go
3、 参数响应结果封装Result.go
4、 验证码管理Captcha.go
5、 网络访问模块Http.go
6、 加密方法封装Crypto.go
7、 应用管理模块Restgo.go
其他需要扩张的用户可以自行添加
2.8 配置目录config
配置存放目录在config下,具体内容如下1、 日志配置文件log4g.xml
2、 应用配置文件application. Properties
其他配置文件可以自行添加
2.9 其他
应用启动文件main.go位于跟目录下本文源代码源代码获取地址 https://github.com/winlion/restgo
待提供源代码清单
10.1 restgo后台管理框架
https://github.com/winlion/restgo-admin
10.2 天天任务清单小程序https://github.com/winlion/dailytask
10.3 工业大数据采集
10.4 restgo cms
10.5 restgo 千人大群
golang实战使用gin+xorm搭建go语言web框架restgo详解1.1 go语言的困境
golang实战使用gin+xorm搭建go语言web框架restgo详解1.2 我要做什么
golang实战使用gin+xorm搭建go语言web框架restgo详解2 框架基本架构
golang实战使用gin+xorm搭建go语言web框架restgo详解3 系统常用配置参数
golang实战使用gin+xorm搭建go语言web框架restgo详解4 路由配置
golang实战使用gin+xorm搭建go语言web框架restgo详解5 控制器C
golang实战使用gin+xorm搭建go语言web框架restgo详解5.2 跳转和重定向
golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器
golang实战使用gin+xorm搭建go语言web框架restgo详解5.4 控制器参数绑定
golang实战使用gin+xorm搭建go语言web框架restgo详解5.5 控制器模型绑定
golang实战使用gin+xorm 搭建 go语言web框架restgo搭建详解5.6 控制器参数校验
Golang go语言整合gin+xorm 搭建 web框架restgo搭建详解5.7 控制器数据响应
golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程
golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm
golang实战使用gin+xorm搭建go语言web框架restgo详解6.4 推荐编程方式
golang实战使用gin+xorm搭建go语言web框架restgo详解7 视图层V
golang实战使用gin+xorm搭建go语言web框架restgo详解8 关于模板
golang实战使用gin+xorm搭建go语言web框架restgo详解9 session、日志、鉴权
作者简介:胡文林,持续创业者,长期从事技术开源工作。微信号jiepool-winlion相关文章推荐
- golang实战使用gin+xorm搭建go语言web框架restgo详解6.4 推荐编程方式
- golang实战使用gin+xorm搭建go语言web框架restgo详解1.1 go语言的困境
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.6 控制器参数校验
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.4 控制器参数绑定
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.7 控制器数据响应
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器
- golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.5 控制器模型绑定
- golang实战使用gin+xorm搭建go语言web框架restgo详解9 session、日志、鉴权、验证码等
- golang实战使用gin+xorm搭建go语言web框架restgo详解1.2 我要做什么
- golang实战使用gin+xorm搭建go语言web框架restgo详解3 系统常用配置参数
- golang实战使用gin+xorm搭建go语言web框架restgo详解7 视图层V
- golang实战使用gin+xorm搭建go语言web框架restgo详解5 控制器C
- golang实战使用gin+xorm搭建go语言web框架restgo详解10 使用restgo搭建后台管理系统
- golang实战使用gin+xorm搭建go语言web框架restgo详解8 关于模板
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.2 跳转和重定向
- golang实战使用gin+xorm搭建go语言web框架restgo详解4 路由配置
- golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程示例
- java程序员10分钟可上手的golang框架golang实战使用gin+xorm搭建go语言web框架restgo
- Go实战--golang中使用echo框架、MongoDB、JWT搭建REST API(labstack/echo、gopkg.in/mgo.v2、dgrijalva/jwt-go)