在刚接触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 文件中定义路由:
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
测试我们的程序啦,做到入口文件和路由文件分离的效果。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有