Back

go - gin框架急速入门

发布时间: 2021-09-03 08:28:00

 安装go

go 1.17   ( 下载tar, 编译)

1870 tar zxvf go1.17.linux-amd64.tar.gz go
1871 mv go /usr/local/
1872 sudo mv go /usr/local/

export PATH=$PATH:/usr/local/go/bin

查看环境:  $ go env

修改代理:

export GOPROXY=https://goproxy.cn

安装gin

参考: https://github.com/gin-gonic/gin

go get -u github.com/gin-gonic/gin

vim server.go

package main
import "github.com/gin-gonic/gin"

func main() {
  r := gin.Default()
  r.GET("/hi", func(c *gin.Context) {
    c.JSON(200, gin.H {
      "message": "lueluelue",
    })
  })
	r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

运行:  $ go run server.go 

即可。

性能超好,在虚拟机上, 7000 req/s

带上参数:

package main
import "github.com/gin-gonic/gin"
import "net/http"

func main() {
  router := gin.Default()
  router.GET("/user/:name", func(c *gin.Context){
    name := c.Param("name")
    c.String(http.StatusOK, "Hihihi , %s", name)
  })

  router.GET("/book/show", func(c *gin.Context){
    name := c.Query("name")
    year := c.Query("year")
    c.String(http.StatusOK, "show me this booK: %s %s", name, year)
  })

  router.Run(":8080")
}

带上POST参数:

package main

import "github.com/gin-gonic/gin"
//import "net/http"

func main(){
  router := gin.Default()
  router.POST("/book/create", func(c *gin.Context){
    c.JSON(200, gin.H {
      "name": c.PostForm("name"),
      "author": c.PostForm("author"),     // 注意这个 , 不能省略
    })  
  })  
  router.Run(":8080")
}

Back