单独处理路由部分代码
代码语言:javascript复制在刚接触gin框架时,我们会直接在main.go 文件中定义接口,一个文件解决一切,不过这种设计是不符合设计原则的,我们需要将路由层,逻辑层,数据库交互层分离开。
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 配置,代码为:
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
测试我们的程序啦,做到入口文件和路由文件分离的效果。