Gin框架个人总结
本文最后更新于 154 天前,其中的信息可能已经有所发展或是发生改变。如有疑问或错误请反馈至邮箱super.lucky.qu@gmail.com

前言

Gin框架个人总结由本人跟学教材时的个人理解与做题总结而来,难免具有很多错误,如发现请指正,谢谢!

电脑端可以于左栏“文章目录”来索引到指定小节,手机端可以通过左上角按钮唤出菜单索引到指定小节

正文

HTTP方法

GET

一般从Query取参数

根据HTTP/1.1协议的定义,GET请求的语义是用于获取资源信息,而不是修改服务器上的数据。因此,GET请求一般只通过URL的查询字符串来传递参数。

POST

一般从Form中取参数

HTTP协议规定,POST请求的数据必须放在消息主体中,但并没有规定具体的数据编码方式。开发者可以根据需要选择合适的编码方式,并通过请求头中的Content-Type字段告知服务端数据的格式‌

DELETE

一般通过URI取参数

PUT

  • 主要数据:通过请求体传递。
  • 资源标识符:通常放在URL路径中。
  • 附加信息:偶尔可以通过查询字符串传递,但不是主要方式

一般从Form中取参数

补充知识:URI相关

在地址栏中定义一个占位符“:”用来从URI获取数据,如:

	r.DELETE("/test/:id", func(c *gin.Context) {
		id := c.Param("id")
		c.JSON(200, gin.H{
			"id":    id,
			"Reply": "DELETE测试成功!",
		})
	})

Bind

只进行绑定

在Gin框架中,可以将接收的数据绑定到结构体中从而便于处理,通过使用ShouldBindJSON方法(具体哪个方法取决具体情况)可以将一个实例化的结构体绑定,从而将输入的数据处理,

对数据检查

对一个绑定后的结构体内数据进行检查,可以使用函数来进行检查,首先要在要进行检查的结构体字段后用标签`binding:””`来进行说明,如要使用Check函数来进行检查,可以在冒号后写required,Check,表示对这个字段要使用名为Check的函数进行检查

首先检查的函数接收一个validator.FieldLevel类型返回一个bool类型

使用validator.FieldLevel类型中的Field().Interface()方法进行断言应该获得的数据类型来获取数据并进行检查返回true或者false

如(fl为在函数中声明的validater.FieldLevel类型)

age ,ok := fl.Field().Interface().(int)

回到调用处,需要在使用前对gin注册函数,如:

if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
    err = v.RegisterValidation("AgeCheck", AgeCheck)
    if err != nil {
	panic(err)
    }
}

File

Log

Logrus

JWT-Go

上一篇
下一篇