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
相关推荐
Setsuna_F_Seiei6 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
zhangzeyuaaa7 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
默_笙7 小时前
🌊 向量库和 ES 都查不出"关系",我只好给奶茶建了一张人脉网
前端·javascript
优选资讯7 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
一个风轻云淡8 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u0111026759 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说9 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa9 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端
deli00710 小时前
DLA 枝晶生长实测:5000 个粒子集体停摆之后,分形维数收敛到 1.70
前端
IT_陈寒10 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端