Go Web实战-1.HellowWorld

先从入门例程开始体验一下Gin。

安装Gin

go get github.com/gin-gonic/gin

使用Goland建立工程


接下来需要获取一个Gin实例,还需要给他添加路由,然后就可以启动了。

var startMode = gin.DebugMode
func main() {
   fmt.Println("[Server Starting]...")

   gin.SetMode(startMode)
   
   //注册路由
   router := routers.InitRouter()

   //启动服务器
   router.Run(":8080")

   log.Println("Server stopped")
   //defer models.DbClose()
   os.Exit(0)
}



我们在InitRouter里面创建一个Gin实例,给他添加路由,在返回给main

func InitRouter() *gin.Engine {

   router := gin.Default()
   fmt.Println("[Plugin Router Profile]...")

   //加载中间件
   router.Use(gin.Logger())

   //注册顶级路由
   v1 := router.Group("/api/v1")
   {
      new(HellowController).AddRouter(v1)
   }

   fmt.Println("[Router Inited]...")
   return router

}

这里我们创建了一个路由组/api/v1,因为我们项目后面路由会越来越多,这里我们加了个嵌套,在每个模块里面单独在创建一个分组,并添加路由和Handler。

HellowController里面设置分组/hellow,并添加了两个GET路由 /ping 和  /user/:name,

那么完整的路由就是 /api/v1/hellow/ping 和  /api/v1/hellow/user/:name; 这里的/:name表示path变量。

//注册路由
func (h *HellowController)AddRouter(router *gin.RouterGroup) {

   r := router.Group("/hellow")
   r.GET("/user/:name", h.GetUserHandler)
   r.GET("/ping", h.PingHandler)
}

每个路由需要添加对应的Handler处理函数。

var DB = map[string]string{
   "aa": "222",
   "bb": "444",
}
func (h *HellowController)PingHandler(c *gin.Context) {
   c.String(200, "pong")
}

// Get user value
func (h *HellowController)GetUserHandler(c *gin.Context) {
   user := c.Params.ByName("name")
   value, ok := DB[user]
   if ok {
      c.JSON(200, gin.H{"user": user, "value": value})
   } else {
      c.JSON(200, gin.H{"user": user, "status": "no value"})
   }
}

收到/api/v1/hellow/ping请求时,服务器直接返回一个“pong”字符串。而收到/user时则会用

c.Params.ByName("name")

取出path变量,返回map里面对应的user信息。

启动服务器后会打印出Handler的信息

[GIN-debug] GET    /api/v1/hellow/user/:name --> _/F_/Project/GOproject/WEB/awesomeProject/api/controllers.(*HellowController).GetUserHandler-fm (4 handlers)
[GIN-debug] GET    /api/v1/hellow/ping       --> _/F_/Project/GOproject/WEB/awesomeProject/api/controllers.(*HellowController).PingHandler-fm (4 handlers)
[GIN-debug] Listening and serving HTTP on :8080

访问/api/v1/hellow/ping,会返回pong


访问http://localhost:8080/api/v1/hellow/user/aa,则会返回map里面的"aa"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值