Gin框架
Gin官方仓库
安装Gin
go get -u github.com/gin-gonic/gin-u:已存在相关的代码包,强行更新代码包及其依赖包
注意
碰到 “go: go.mod file not found in current directory or any parent directory.” 报错,则需要执行 go mod init <module-name> 生成 go.mod 文件,方可执行 go get 命令
Gin脚手架
Gin-Vue-Admin
使用gin+vue进行极速开发的全栈开发基础平台
Gin-Vue-Admin是一个基于vue和gin开发的全栈前后端分离的开发基础平台,拥有jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供了多种示例文件,让大家把更多时间专注在业务开发上。
- 官网:https://www.gin-vue-admin.com/
- 代码仓库:https://github.com/flipped-aurora/gin-vue-admin
- 体验地址:https://demo.gin-vue-admin.com/#/login
- 交流社区:https://support.qq.com/products/371961/ 账号:admin 密码:123456
go-admin
go-admin 是一个中后台应用框架,基于(gin, gorm, Casbin, Vue, Element UI, Arco Design, Ant Design)实现。
基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务
Element UI vue体验:https://vue2.go-admin.dev 账号 / 密码: admin / 123456
Arco Design vue3 demo:https://vue3.go-admin.dev 账号 / 密码: admin / 123456
antd体验:https://antd.go-admin.pro 账号 / 密码: admin / 123456
Gin路由
简单路由示例
- 响应
字符串格式
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/hello", func(c *gin.Context) {
c.String(http.StatusOK, "Hello World")
})
r.POST("/user/list", func(c *gin.Context) {
c.String(http.StatusOK, "user list")
})
r.PUT("/user/add", func(c *gin.Context) {
c.String(http.StatusOK, "user add")
})
r.DELETE("/user/delete", func(c *gin.Context) {
c.String(http.StatusOK, "user delete")
})
r.Run(":9999") // 指定端口号,默认端口号:8080
}- 响应
JSON格式
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/user/info", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 200,
"message": "success",
"data": map[string]any{
"userid": 1,
"username": "hello",
},
})
})
r.Run()
}路由组
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
user := r.Group("/user")
{
user.GET("/info", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 200,
"message": "success",
"data": map[string]any{
"userid": 1,
"username": "hello",
},
})
})
// ...
}
r.Run()
}路由文件抽离封装
创建路由目录 router
mkdir router && cd router
touch router.go配置路由文件 router.go
package router
import (
"gin/controllers"
"github.com/gin-gonic/gin"
)
func Router() *gin.Engine {
r := gin.Default()
param := r.Group("/param")
{
param.GET("/GetParam/:id", controllers.ParamController{}.GetParam)
param.GET("/GetParams/:cid/:name", controllers.ParamController{}.GetParams)
param.POST("/PostParam", controllers.ParamController{}.PostParam)
param.POST("/PostJsonParam", controllers.ParamController{}.PostJsonParam)
param.POST("/PostJsonByStructParam", controllers.ParamController{}.PostJsonByStructParam)
}
return r
}GORM框架
GORM官方
Golang 的出色 ORM 库旨在方便开发人员。
学习视频
go-zero框架
go-zero官方
go-zero是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。
go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。
GoFrame框架
GoFrame官方
GoFrame是一款模块化、高性能、企业级的Go基础开发框架。
