认识gin框架是一系列工具的集合能让开发变的便捷。学习框架的目的就是为了提供项目的开发效率使我们更加专注业务而不是和业务无关的底层代码。1. go流行的web框架如果学习过其他语言可能知道Java用的比较多的是Spring框架PHP用的比较多的是Laravelpython用的多的是Django都在各自的语言中具有强大的统治力。go从诞生之初就带有浓重的开源属性其原生库已经很强大即使不依赖框架也能进行高性能开发又因为其语言并没有一定的设计标准所以较为灵活也就诞生了众多的框架各具有特色满足不同的喜好。1.1 Gin地址https://github.com/gin-gonic/gin号称最快的go语言web框架目前是go官方的推荐框架https://go.dev/doc/tutorial/。1.2 iris地址https://github.com/kataras/iris性能比gin高一些支持MVC但这款框架评价不太好使用上问题较多近些年很少去选择使用1.3 Beego地址https://github.com/beego/beego国人开发最早的go web框架之一工具集比较完善性能较差据传言作者是php转行所以框架带有浓厚的php特色早期国内使用的多目前少有人选择1.4 fiber地址https://github.com/gofiber/fiber2020年发布的框架发展迅速建立在fasthttp之上性能目前最高受Express启发比较简洁上手较快和gin类似。当然还有其他一些框架但从star数上以及流行程度上看gin一骑绝尘gin的好处在于其简洁扩展性稳定性以及性能都比较出色。go的框架其实是可以理解为库并不是用了某一个框架就不能用别的框架可以选择性的使用各个库中的优秀组件进行组合2. gin介绍特性快速基于 Radix 树的路由小内存占用。没有反射。可预测的 API 性能。支持中间件传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如LoggerAuthorizationGZIP最终操作 DB。Crash 处理Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover 它。这样你的服务器将始终可用。例如你可以向 Sentry 报告这个 panicJSON 验证Gin 可以解析并验证请求的 JSON例如检查所需值的存在。路由组更好地组织路由。是否需要授权不同的 API 版本…… 此外这些组可以无限制地嵌套而不会降低性能。错误管理Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终中间件可以将它们写入日志文件数据库并通过网络发送。内置渲染Gin 为 JSONXML 和 HTML 渲染提供了易于使用的 API。可扩展性新建一个中间件非常简单。3. 快速入门go版本需求go1.13及以上环境windows 11D:\go\projectmkdir ginlearn D:\go\projectcd ginlearn D:\go\project\ginlearngo work init D:\go\project\ginlearnmkdir helloworld D:\go\project\ginlearncd helloworld D:\go\project\ginlearn\helloworldgo mod init test.com/helloworld go: creating new go.mod: module test.com/helloworld D:\go\project\ginlearn\helloworldcd .. D:\go\project\ginlearngo work use ./helloworld使用golandvscode打开PS D:\go\project\ginlearncd.\helloworld\#下载并安装ginPS D:\go\project\ginlearn\helloworldgo get-ugithub.com/gin-gonic/gin示例程序packagemainimportgithub.com/gin-gonic/ginfuncmain(){r:gin.Default()r.GET(/ping,func(c*gin.Context){c.JSON(200,gin.H{message:pong,})})r.Run()// 监听并在 0.0.0.0:8080 上启动服务}运行后postman进行测试简单的代码就实现了一个http的服务。