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

这货不是陈进坚 2024-08-03 11:35:02 阅读 87

Go-MVC

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

项目说明

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

运行环境

本项目测试环境为<code>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 #上传文件目录

如何使用

下载源码

git clone https://github.com/jian1098/go-mvc.git

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

cd go-mvc

cp .env.example .env

vim .env

开启go mod

go env -w GO111MODULE=on

设置代理

go env -w GOPROXY="https://goproxy.cn"code>

安装依赖

go mod vendor

运行http服务

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


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。