四时宝库

程序员的知识宝库

Go Web教程21:Gin Web框架常用功能,就这几个

1. 修改端口号

r := gin.Default()
r.Run(":19001")

2.release模式

gin.SetMode(gin.ReleaseMode)

3.路由分组

r := gin.Default()
group := r.Group("/v1/user/")
group.POST("login", func(c *gin.Context) {
})
group2 := r.Group("/v2/user/")
group2.POST("login", func(c *gin.Context) {
})

4.json解析

r := gin.Default()
group := r.Group("/v1/user/")
group.POST("login", func(c *gin.Context) {
 var loginVo LoginVo
 if err := c.ShouldBindJSON(&loginVo); err == nil {
 c.JSON(http.StatusOK, gin.H{
 "name": loginVo.Name,
 })
 } else {
 c.JSON(http.StatusBadRequest, gin.H{"msg": err})
 }
})

5. 文件上传

group.POST("/upload", func(c *gin.Context) {
 //单个文件上传
 file, _ := c.FormFile("file")
 println(file.Filename)
 // 保存文件到磁盘
 // c.SaveUploadedFile(file, dst)
 c.JSON(http.StatusOK, gin.H{
 "fileName": fmt.Sprintf("'%s' uploaded!", file.Filename),
 })
})

6. 多个文件上传

group.POST("/upload", func(c *gin.Context) {
 // Multipart form
 form, _ := c.MultipartForm()
 files := form.File["upload[]"]
 for _, file := range files {
 println(file.Filename)
 // 保存文件到磁盘
 // c.SaveUploadedFile(file, dst)
 }
 c.JSON(http.StatusOK, gin.H{
 "fileName": fmt.Sprintf("'%s' uploaded!", file.Filename),
 })
})

7. Json入参验证

type LoginVo struct {
	Name string `json:"name" binding:"required"`
	Password string `json:"password" binding:"required"`
}
r := gin.Default()
group := r.Group("/v1/user/")
group.POST("login", func(c *gin.Context) {
 var loginVo LoginVo
 if err := c.ShouldBindJSON(&loginVo); err == nil {
 c.JSON(http.StatusOK, gin.H{
 "name": loginVo.Name,
 })
 } else {
 c.JSON(http.StatusBadRequest, gin.H{"msg": err})
 }
})

8. 设置favicon

group.StaticFile("/favicon.ico", "./favicon.ico")

9. 使用GET, POST, PUT, PATCH, DELETE and OPTIONS

r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
 c.JSON(200, gin.H{
 "message": "pong",
 })
})
r.POST("/v1/login", func(c *gin.Context) {
})
r.PUT("/v1/user/save", func(c *gin.Context) {
})
r.PATCH("/v1/user/update", func(c *gin.Context) {
})
r.DELETE("/v1/user/delete", func(c *gin.Context) {
})
r.Run(":19001") // listen and serve on 0.0.0.0:8080

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接