Skip to content

Gin框架

Gin官方仓库

安装Gin

shell
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鉴权,表单生成器,代码生成器等功能,提供了多种示例文件,让大家把更多时间专注在业务开发上。

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服务

Gin路由

简单路由示例

  • 响应 字符串 格式
go
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
}

访问:localhost:9999/hello

  • 响应 JSON 格式
go
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()
}

访问:localhost:8080/user/info

路由组

go
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()
}

访问:localhost:8080/user/info

路由文件抽离封装

创建路由目录 router

shell
mkdir router && cd router
touch router.go

配置路由文件 router.go

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基础开发框架。

最近更新