go语言MVC模式web开发框架go-mvc

Go-MVC

项目地址:https://github.com/jian1098/go-mvc

项目说明

go语言gin框架搭建的MVC模式(参考PHP语言Laravel和ThinkPHP框架结构)web开发框架项目,集成了数据库gorm、类型转换cast等常用包,以及一些代码示例;控制器层和路由层做了仿继承处理,方便添加统一的属性和方法,模型、模板、控制器、路由、常量、验证器、服务、全局日志、全局DB等都做了分离处理,分配到各个模块

运行环境

本项目测试环境为go 1.22.0,理论上 go version >= 1.20即可

目录结构

复制代码
|-- app										#开发主目录
|   |-- admin								#后台模块
|   |   `-- controllers						 #后台控制器
|   |       |-- adminController.go
|   |       |-- baseController.go
|   |       `-- homeController.go
|   |-- api									#api模块
|   |   `-- controllers						 #api控制器
|   |       |-- baseController.go
|   |       `-- indexController.go
|   |   `-- requests						 #api请求参数结构体
|   |   `-- responses						 #api响应结构体
|   |-- utils								#公共模块
|   |   |-- db.go
|   |   `-- zapLogger.go
|   |-- constants							 #常量目录
|   |   `-- Response.go
|   |-- middlewares							 #中间件目录
|   |   `-- Cors.go
|   |-- services							 #服务层目录
|   |   `-- UserServices.go
|   `-- models								 #模型结构体目录
|       `-- User.go
|-- .env									#环境配置
|-- go.mod
|-- go.sum
|-- main.go									#main.go
|-- routers									#路由模块
|   |-- adminRouter.go
|   |-- apiRouter.go
|   `-- baseRouter.go
|-- static									#静态文件
|   `-- js
|       `-- jquery.min.js
|-- templates								#模板文件
|    `-- admin
|       |-- home
|       |   `-- index.html
|       `-- index
|           `-- index.html
|-- runtimes								
|	 `-- log								#日志文件目录
|-- uploads								   	#上传文件目录

如何使用

下载源码

bash 复制代码
git clone https://github.com/jian1098/go-mvc.git

创建配置文件,并修改为你的配置

bash 复制代码
cd go-mvc
cp .env.example .env
vim .env

开启go mod

bash 复制代码
go env -w GO111MODULE=on

设置代理

bash 复制代码
go env -w GOPROXY="https://goproxy.cn"

安装依赖

bash 复制代码
go mod vendor

运行http服务

bash 复制代码
go run main.go

添加路由

routers目录下对应模块增加路由

访问API接口

请求路由以/api/开头, 例如:127.0.0.1:8080/api/index/demo

访问后台页面

请求路由以/admin/开头, 例如:127.0.0.1:8080/admin/home/index

第三方包

包名 用途说明
github.com/gin-gonic/gin gin框架
github.com/joho/godotenv 加载.env配置
go.uber.org/zap zap日志
github.com/spf13/cast 变量类型转换
github.com/jinzhu/gorm gorm数据库包
github.com/go-sql-driver/mysql mysql驱动,配合gorm使用
github.com/gookit/validate 验证器,支持验证场景和标签
github.com/dgrijalva/jwt-go jwt
相关推荐
八荒启·交互动画40 分钟前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计42 分钟前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
用户938515635071 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试
粥里有勺糖2 小时前
视野修炼第133期 | Native 回春了?
前端·github·agent
aichitang20242 小时前
前端小skill
前端·人工智能·算法·ai·前端框架
前端·柱子3 小时前
q-floodfill白边锯齿?一招搞定抗锯齿边缘问题
前端·html·canva可画
葡萄城技术团队3 小时前
SpreadJS V19.2新特性揭秘:功能区键盘提示
前端
计算机魔术师4 小时前
AI 幻觉导致的错误情报险些引发美军拦截中国船只
前端
万物智能4 小时前
SARADC模数转换—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端
志尊宝4 小时前
Vue3 零基础每日笔记(037):动手封装 useMouse 与 useWindowSize——事件监听的标准模板
前端·javascript·vue.js·笔记·html5