1.下载 gin 依赖
go get -u github.com/gin-gonic/gin
2.在main文件中测试
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
// 实例化 gin
router := gin.Default()
// 测试get 路由通道
router.GET("/", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 10000,
"msg": "数据请求成功!",
})
})
// 启动web 服务
err := router.Run(":8080")
// 如果启动不成功,会返回err错误
if err != nil {
panic(err)
}
}
3.访问 127.0.0.1:8080
二、封装gin
1.新建项目结构和文件
2.在routers/app.go文件中,新建webapp方法来实例化gin ,然后注册admin 和web 子路由 ,最后启动web服务,代码如下:
package routers
import (
"github.com/gin-gonic/gin"
)
func Webapp() {
// 实例化 gin
r := gin.Default()
//注册 admin 路由
GetAdminRouters(r)
// 注册web 路由
GetWebRouters(r)
// 启动web 服务 默认端口也是8080
err := r.Run(":8080")
// 如果启动不成功,会返回err错误
if err != nil {
panic(err)
}
}
3.分别在RouterAdmin和RoutersWeb文件中配置admin和web路由分组,在子路由中分别调用api的函数来执行工作
package routers
// 配置admin路由
import (
"github.com/gin-gonic/gin"
"goweb/api/admin"
)
func GetAdminRouters(r *gin.Engine) {
AdminRouters := r.Group("/admin")
//以下的{}是书写规范,用来包裹子路由
//路由后面的函授是没有()的
{
AdminRouters.GET("/", admin.Index)
}
}
package routers
// 配置web 路由分组
import (
"github.com/gin-gonic/gin"
"goweb/api/web"
)
func GetWebRouters(r *gin.Engine) {
UserRouters := r.Group("/")
//以下的{}是书写规范,用来包裹子路由
//路由后面的函授是没有()的
{
UserRouters.GET("", web.Index)
}
}
4.在api 下新建apiAdminIndex和apiWebIndex 文件
package admin
//apiAdminIndex
import (
"github.com/gin-gonic/gin"
"net/http"
)
func Index(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 10000,
"msg": "我是admin api 测试页",
})
}
package web
// apiWebIndex
import (
"github.com/gin-gonic/gin"
"net/http"
)
func Index(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 10000,
"msg": "我是web api 测试页",
})
}
5.最后在main入口文件中调用routers/app.go/webapp()方法,启动服务
package main
import "goweb/routers"
func main() {
//启动 app 程序
routers.Webapp()
}
6.访问结果
7.运用流程如下: