您的位置:首页 > 编程语言 > Go语言

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.天天任务清单小程序
https://github.com/winlion/dailytask

10.工业大数据采集
10.restgo cms 
10.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐