0


【Gin框架中接受前端传来的参数用法和Apifox用法总结】

Gin框架中接受前端传来的参数用法总结

简介:主要介绍使用Gin框架时接受不同前端参数的几种方式,比较使用

在 Gin 框架中,接收参数的方式多种多样,常见的有以下几种,并附带了常见参数的Apifox使用方法

1. 常用方式

1. 路径参数(Path Parameters)

通过路由定义中的参数来捕获 URL 中的值。例如:

// 定义路由
router.GET("/users/:id", func(c *gin.Context) {
    userID := c.Param("id")
    // 使用userID来处理请求
})
//直接显示在链接的path中,

Apifox中Params中的Path参数中添加
在这里插入图片描述

2. 查询参数(Query Parameters)

从 URL 查询参数中获取值,通常用于 GET 请求。例如:

func QueryParamsHandler(c *gin.Context) {
    name := c.Query("name")
    age := c.DefaultQuery("age", "18")
    // 使用name和age来处理请求
}

Apifox中直接在Params中Query参数中添加
在这里插入图片描述

3. 表单参数(Form Parameters)

从 POST 或 PUT 表单中获取参数。例如:

func FormParamsHandler(c *gin.Context) {
    name := c.PostForm("name")
    email := c.DefaultPostForm("email", "[email protected]")//后面是没有传值就默认为后面的
    // 使用name和email来处理请求
}

Apifox中Body中的form-data中添加
在这里插入图片描述

4. 请求体参数(Body Parameters)

针对 JSON 或其他格式的请求体中的数据进行解析。例如:

type User struct {
    Name  string `json:"name" db:“name”`
    Email string `json:"email" db:“email”`
}
//需要先创建一个结构体
//json标签是和前端数据唯一绑定,db是和MySQL唯一绑定
func JSONParamsHandler(c *gin.Context) {
    var user User
    if err := c.ShouldBindJSON(&user); err != nil {
        // 处理绑定错误
        return
    }
    // 使用user中的字段来处理请求
}

Apifox中Body中的json中添加
在这里插入图片描述
值得注意的是json规范一定要正确,常见错误:

  1. 字符串没用" "
  2. 数字写成“123"
  3. 最后一条数据不带逗号‘,’
  4. 全部信息是由大括号括起来的

5. Multipart/文件上传参数(Multipart/Form-data Parameters)

用于接收上传的文件或表单字段数据。例如:

func FileUploadHandler(c *gin.Context) {
    file, _ := c.FormFile("file")
    // 处理上传的文件
}
这些是 Gin 框架中常用的参数接收方式,可以根据具体的业务需求和请求类型选择合适的方式来接收参数。

2. 除了路径参数、查询参数、表单参数、请求体参数和文件上传参数外,Gin 框架还支持其他一些方式来传递参数:

6. Header 参数

从 HTTP 请求头中获取参数:

func HeaderParamsHandler(c *gin.Context) {
    contentType := c.GetHeader("Content-Type")
    // 使用 contentType 来处理请求
}
7. Cookie 参数

从 HTTP Cookie 中获取参数:

func CookieParamsHandler(c *gin.Context) {
    cookie, err := c.Cookie("cookie_name")
    // 处理 cookie 的值
}
8. 参数绑定

Gin 提供了 Bind() 或 ShouldBind() 等方法,能够将请求参数直接绑定到定义的结构体中:

type User struct {
    Name  string `form:"name" json:"name"`
    Email string `form:"email" json:"email"`
}

func BindingHandler(c *gin.Context) {
    var user User
    if err := c.Bind(&user); err != nil {
        // 处理绑定错误
    }
    // 使用绑定后的参数来处理请求
}
9. 参数验证

Gin 也支持参数验证,例如使用 binding 标签或者 validator 等包进行参数验证:

type User struct {
    Name  string `form:"name" json:"name" binding:"required"`
    Email string `form:"email" json:"email" binding:"required,email"`
}

func ValidationHandler(c *gin.Context) {
    var user User
    if err := c.ShouldBind(&user); err != nil {
        // 处理参数验证错误
    }
    // 处理验证通过的请求
}

这些都是 Gin 框架中常用的参数传递和处理方式。通过这些方法,你可以根据需求灵活地获取和处理不同类型的请求参数。
此为值得学习的Gin框架中常用的知识,结构体的标签和数据的格式转换,数据库中和结构体的唯一绑定等,都可以在博主的后续文章中找到,最后博客记录知识,愿你我共享

标签: go 经验分享 gin

本文转载自: https://blog.csdn.net/m0_64941684/article/details/135000915
版权归原作者 晴天阿良 所有, 如有侵权,请联系我们删除。

“【Gin框架中接受前端传来的参数用法和Apifox用法总结】”的评论:

还没有评论