Gin学习
.番茄炒蛋
这个作者很懒,什么都没留下…
展开
-
gin集成支付宝支付
支付宝开放平台沙箱环境本文代码地址configserver测试获取支付url原创 2022-07-03 17:10:23 · 897 阅读 · 0 评论 -
gin集成nacos
nacos官方文档nacos-sdk-go本文代码地址测试原创 2022-06-16 21:35:40 · 1154 阅读 · 0 评论 -
gin集成图形验证码
github文档content就是文件内容,需要进行解码才能看到图片,点击解码输入正确的验证码,就会返回true,二次验证或者输入错误的验证码都会返回false原创 2022-06-11 18:42:12 · 789 阅读 · 0 评论 -
gin解决跨域问题
再非简单请求且跨域的情况下,浏览器会发送OPTIONS预检请求.Preflighted Requests是CORS中一种透明服务器验证机制.预检请求首先需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,其目的就是为了判断实际发送的请求是安全的.简单请求需满足以下两个条件非简单请求即是复杂请求常见的复杂请求有:再跨域的情况下,非简单请求会先发起一次空body的OPTIONS请求,称为"预检"请求,用于向服务器请求权限信息,等预检请求被成功响应后,才会发起真正的http请求.浏览器的预检请求原创 2022-06-11 17:21:24 · 6180 阅读 · 0 评论 -
gin的优雅退出
简介官方示例优雅退出:当我们关闭程序的时候应该做的后续处理例如:微服务再启动之前或者启动之后会做一件事:将当前服务的ip+端口注册到注册中心;等到退出时需要告知注册中心;如果没有告知注册中心,那注册中心知道当前服务断开就会有延迟.package mainimport ( "fmt" "github.com/gin-gonic/gin" "net/http" "os" "os/signal" "syscall")func main() { r := gin.Default(原创 2022-05-30 22:45:33 · 1281 阅读 · 0 评论 -
gin返回html
简介官方地址中文文档(翻译版)代码mainpackage mainimport ( "fmt" "github.com/gin-gonic/gin" "net/http" "os" "path/filepath")func main() { r := gin.Default() r.LoadHTMLGlob("templates/*") r.GET("/index/:content", func(context *gin.Context) { context.HTM原创 2022-05-30 21:48:31 · 1476 阅读 · 0 评论 -
gin自定义中间件
package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.Use(newMiddleware()) r.GET("/ping", func(context *gin.Context) { context.JSON(http.StatusOK, gin.H{ "result": "pong", }) }) _ = r.Run(":8081")原创 2022-05-30 20:20:02 · 140 阅读 · 0 评论 -
gin中间件源码分析
Use(middleware …HandlerFunc)func (engine *Engine) Use(middleware ...HandlerFunc) IRoutes { // 核心代码就是第一句 engine.RouterGroup.Use(middleware...) engine.rebuild404Handlers() engine.rebuild405Handlers() return engine}func (group *RouterGroup) Use(middl原创 2022-05-30 19:17:12 · 141 阅读 · 0 评论 -
gin表单验证
简介Gin使用go-playground/validator验证参数;官方文档表单验证package mainimport ( "github.com/gin-gonic/gin" "net/http")type SignUpForm struct { // 参数age必填;大于等于1小于等于100 Age uint8 `json:"age" binding:"required,gte=1,lte=100"` // 参数name必填;最小长度3最大长度15 Name str原创 2022-05-29 18:14:04 · 1289 阅读 · 0 评论 -
gin返回ProtoBuf
protosyntax = "proto3";option go_package = ".;proto";message Result { string name = 1; repeated string course = 2;}使用命令生成go代码protoc -I . result.proto --go_out=plugins=grpc:.Serverpackage mainimport ( "ShopBefore/gintstart/ch06/proto" "gi原创 2022-05-29 15:46:51 · 527 阅读 · 0 评论 -
gin获取GET和POST表单信息
获取GET参数代码package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/get", get) r.Run(":8081")}func get(context *gin.Context) { // 如果没有传id默认为1 id := context.DefaultQuery("id", "1") // name无默认值 name原创 2022-05-28 22:33:48 · 691 阅读 · 0 评论 -
gin获取url中的变量
带参数的url代码package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/find/:id/:name", func(context *gin.Context) { id := context.Param("id") name := context.Param("name") context.JSON(http.StatusOK,原创 2022-05-28 21:27:10 · 718 阅读 · 0 评论 -
gin常用的http请求方法以及路由分组
常用的http请求方法package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { engine := gin.Default() engine.GET("/goods/find",handles) engine.POST("/goods/all",handles) engine.DELETE("/goods/delete",handles) engine.PUT("/goods/update",h原创 2022-05-28 17:38:53 · 840 阅读 · 0 评论 -
gin框架
简介gin框架是一个典型的http框架;是一个使用的人i比较多的框架,go语言的http框架的设计思路基本都是一样的,学习了gin,以后不管用什么框架,它的思路都是差不多的gin框架地址go get -u github.com/gin-gonic/gin快速开始package mainimport ( "github.com/gin-gonic/gin")func main() { r := gin.Default() r.GET("/ping", func(c *gin.C原创 2022-03-17 21:41:21 · 8365 阅读 · 1 评论 -
gin使用New和Default初始化的区别
简介github官方文档源码gin.New()func New() *Engine { debugPrintWARNINGNew() engine := &Engine{ RouterGroup: RouterGroup{ Handlers: nil, basePath: "/", root: true, }, FuncMap: template.FuncMap{}, RedirectTrailingSlash:原创 2022-05-28 15:12:23 · 4027 阅读 · 0 评论