gin 框架将路由文件单独处理

2022-12-29 18:14:12 浏览数 (2)

单独处理路由部分代码

在刚接触gin框架时,我们会直接在main.go 文件中定义接口,一个文件解决一切,不过这种设计是不符合设计原则的,我们需要将路由层,逻辑层,数据库交互层分离开。

代码语言:javascript复制
package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "hello word")
    })
    //监听端口默认为8080
    r.Run(":8000")
}

那么,如何将router 单独分离出去呢?

首先,我们新建一个 routers 文件夹,这里面放置路由文件,包含一个总的router.go

main.go 使用自定义 HTTP 配置,代码为:

代码语言:javascript复制
package main

import (
	"fmt"
	"gin_demo/router"
	"net/http"
	"time"
)
func main() {
	r := router.InitRouter()
	s := &http.Server{
		Addr:           ":8000",
		Handler:        r,
		ReadTimeout:    10 * time.Second,
		WriteTimeout:   10 * time.Second,
		MaxHeaderBytes: 1 << 20,
	}
	s.ListenAndServe()
}

然后我们在router.go 文件中定义路由:

代码语言:javascript复制
package router

import (
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
)
func InitRouter() *gin.Engine{
	r := gin.New()
	//定义路由
	r.GET("/ping", func(c *gin.Context) {
		c.String(http.StatusOK, "pong")
	})
	return r
}

ok,接下来直接 go run main.go测试我们的程序啦,做到入口文件和路由文件分离的效果。

0 人点赞