gin.Default() 默认带有中间件(日志和恢复)的路由 gin.New() 不带中间件的路由
router.GET/POST/PUT/DELETE …
martini restful风格
参数获取c *gin.Content
uri args
c.Param("balabla")
query args (c.Request.URL.Query().Get("balabala"))
c.Query("balabla")
c.DefaultQuery("balabala", "defaultValue")
form args
c.PostForm("balabala")
c.DefaultPostForm("balabala", "defaultValue")
组路由
g1 := router.Group("/v1")
g1.POST("/login", handler)
g1.POST("logout", handler)
数据绑定
c.MustBindWith(obj interface{}, b binding.Binding)
c.BindJSON(obj interface{})
中间件 自定义中间件需要返回一个gin.HandlerFunc类型的方法
使用: router.User(MiddleWare())
context api
c.ContentType()
c.Cookie()
c.ClientIP()
c.Get(key) / C.Set(key, value) 上下文变量传递
c.GetHeader(key string) 获取请求头
c.Header(key, value) 设置响应头
c.IsWebsocket() 是否是websocket请求
c.Next() 在middleware中使用, 调用后会执行下一个pending中的handler方法
c.Redirect(code int, location string)重定向
c.SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)设置cookie
c.Status(code int) 设置响应状态码
c.JSON(code int, obj interface{}) 响应返回一个json串, 同时设置content-type为application/json
c.String(code int, format string, values ...interface{}) 将string写入响应体重
c.Stream(step func(w io.Writer) bool) 流式返回响应体
微信扫一扫,订阅我的博客动态^_^