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

  • 1. 常用方式
        • 1. 路径参数(Path Parameters)
        • 2. 查询参数(Query Parameters)
        • 3. 表单参数(Form Parameters)
        • 4. 请求体参数(Body Parameters)
      • 5. Multipart/文件上传参数(Multipart/Form-data Parameters)
            • 这些是 Gin 框架中常用的参数接收方式,可以根据具体的业务需求和请求类型选择合适的方式来接收参数。
  • 2. 除了路径参数、查询参数、表单参数、请求体参数和文件上传参数外,Gin 框架还支持其他一些方式来传递参数:
        • 6. Header 参数
        • 7. Cookie 参数
        • 8. 参数绑定
        • 9. 参数验证

简介:主要介绍使用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", "example@example.com")//后面是没有传值就默认为后面的// 使用name和email来处理请求}

Apifox中Body中的form-data中添加

4. 请求体参数(Body Parameters)

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

type User struct {Namestring `json:"name" db:“name”`Email string `json:"email" db:“email”`}//需要先创建一个结构体//json标签是和前端数据唯一绑定,db是和MySQL唯一绑定func JSONParamsHandler(c *gin.Context) {var user Userif 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 {Namestring `form:"name" json:"name"`Email string `form:"email" json:"email"`}func BindingHandler(c *gin.Context) {var user Userif err := c.Bind(&user); err != nil {// 处理绑定错误}// 使用绑定后的参数来处理请求}
9. 参数验证

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

type User struct {Namestring `form:"name" json:"name" binding:"required"`Email string `form:"email" json:"email" binding:"required,email"`}func ValidationHandler(c *gin.Context) {var user Userif err := c.ShouldBind(&user); err != nil {// 处理参数验证错误}// 处理验证通过的请求}

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