gin

1 HelloWorld

package main
import (
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "hello word",
})
})
r.Run(":8007") // listen and serve on 0.0.0.0:8007
}

注意:如果你不想用gin提供的方法,完全可以使用c.Requestc.Writer来直接操作,他们就是原生的http包的。

2 header

//获取请求头,如果没有则返回的是空字符串而不是nil
c.GetHeader("key")
//写入响应头,
c.Header("key","value")

3 param

//路由参数 get /user/1 ==>1
r.GET("/user/:id",func(c *gin.Context){
c.Param("id")
})
//querystring参数 get /querystring?a=123 ==>123
r.GET("/querystring", func(c *gin.Context) {
fmt.Println(c.Query("a"))
})
//表单参数
r.POST("/form", func(c *gin.Context) {
fmt.Println(c.PostForm("a"))
})
//json参数 此处将json转为map[string] interface{}
r.POST("/json", func(c *gin.Context) {
//若要直接和struct关联直接将amap类型改为struct类型
var amap interface{}
c.BindJSON(&amap)
fmt.Println(amap)
})

4 response

//纯文本
c.String(200."hello world")
//json类型 amap是map[string] interface{}类型,或者用gin.H构建
c.Json(amap)
//写接口一般就用这两种就够了,其他的不赘述