Gin
实例生产
cloud-笔记
这个作者很懒,什么都没留下…
展开
-
gin框架的异步协程
异步协程:百万级并发可参考:https://blog.csdn.net/jkwanga/article/details/110948445golang的高并发一大利器就是协程。gin里可以借助协程实现异步任务。因为涉及异步过程,请求的上下文需要copy到异步的上下文,并且这个上下文是只读的。router.GET("/sync", func(c *gin.Context) { time.Sleep(5 * time.Second) log.Println("Done! in p原创 2020-12-11 09:50:03 · 2101 阅读 · 0 评论 -
gin路由拆分
gin的路由拆分一, gin路由拆分成多个文件当项目越来越大,所有的路由就不太适合放在一块了,将路由拆分为一个个单独的包// main.gofunc main(0){ r := gin.Default() routers.A(r) routers.B(r) if err := r.Run();err !=nil{ //... } }routes 文件夹下的A,B两个文件都注册了各自的路由// routes/first原创 2020-11-12 16:35:30 · 1166 阅读 · 0 评论 -
gin的路由算法流程
gin的路由算法gin的是路由算法其实就是一个Trie树(也就是前缀树). 有关数据结构的可以自己去网上找相关资料查看.1. 注册路由预处理我们在使用gin时通过下面的代码注册路由2. 普通注册router.POST("/somePost", func(context *gin.Context) { context.String(http.StatusOK, "some post") })3. 使用中间件注册router.Use(Logger())4.使用Gr原创 2020-11-12 11:33:11 · 547 阅读 · 0 评论 -
gin的contex的设计
gin.Context解析gin.Context主要由下面几部分组成(这里沿用源代码里面的注释)1. Metadata Management (我自己叫法:Key-Value)这个模块比较简单, 就是从gin.Context中Set Key-Value, 以及各种各样的Get方法, 如GetBool, GetString等实现这些功能也很简单, 其实就是一个map // Keys is a key/value pair exclusively for the context of each re原创 2020-11-12 10:41:01 · 538 阅读 · 2 评论 -
gin框架的web文件的上传
直接上代码:添加浏览器上传到服务器的路由首先- router.POST("/upload",uploadplugin.Upload)实现代码:package uploadpluginimport ( "os" "net/http" "github.com/gin-gonic/gin" log "github.com/sirupsen/...原创 2020-03-13 17:43:53 · 345 阅读 · 0 评论