Go Gin 框架系列 - 入门篇

简介: 本文将会对 Go Gin 框架进行简单介绍,括它的一些优势和特点,然后通过一个入门示例,演示了如何安装和使用 Gin 启动一个 WEB 服务器并注册路由。

后面将会持续输出 go Gin 框架系列的文章,从简到繁,由浅入深,对这一系列感兴趣的小伙伴,欢迎关注动态更新,让我们一起学习,一起进步!

Gin 框架介绍

Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。[1]

上述内容摘自官网文档。从描述中我们可以知道 Gin 是一个 WEB 框架,其在性能方面有显著的优势。除此之外,Gin 框架还具备着其他优势和特点,例如 简单高效轻量级设计对用户友好的 API灵活的路由与中间件配置 以及 内置良好的错误处理机制 等。

如果你刚开始学习 Go 语言并且正在寻找一个易于上手的 web 框架,那么 Gin 框架无疑是你的最佳选择。

对于那些追求高性能并且希望快速推进项目的开发团队,Gin 框架是一个值得考虑的选项。

Gin 初体验

安装

go 版本要求 1.13 及以上版本

  • 1、下载并安装 gin

    go get -u github.com/gin-gonic/gin
    
  • 2、代码引入

    import "github.com/gin-gonic/gin"
    

示例

一个完整的示例代码如下所示:

package main

import "github.com/gin-gonic/gin"

func main() {
   
   
    r := gin.Default()
    r.GET("/hello", func(ctx *gin.Context) {
   
   
        ctx.JSON(200, gin.H{
   
   
            "message": "你好,世界!欢迎关注 Go技术干货 公众号,一起学习一起进步!",
        })
    })
    r.Run(":8080")
}

运行代码之后,我们可以通过多种方式来测试所定义的接口:
一是通过终端中的 curl 命令(执行 curl http://127.0.0.1:8080/hello);
二是直接在浏览器地址栏输入对应的 URL
三是利用 API 工具例如 Postman 进行测试。Postman 测试结果如下所示:

p2.png

代码分析:

  • 首先,我们通过 gin.Default() 函数获取到一个 Gin 框架默认实例,该实例会自动添加了两个预配置的中间件: Logger 日志处理中间件和处理 panicRecovery 中间件。如果你需要一个创建空配置的 Gin 实例,你可以使用 gin.New() 函数。
  • 其次,获取到 gin 实例之后,我们通过 GET() 方法注册一个 GET 请求的路由,其路径设置为 /hello。在这个路由的处理函数中,我们使用 ctx.JSON() 方法来构造并发送一个 JSON 格式的响应。其中,gin.H 是一个 map[string]any 的简写,用于方便地定义 JSON 响应的键值对。
  • 最后,我们通过 r.Run() 方法启动一个 WEB 服务器,并传入 :8080 作为参数。这样会让 WEB 服务器监听 8080 端口。需要注意的是,这个端口参数是可选的,如果没有指定端口,Gin 会默认使用 8080 端口。

小结

本文首先简单介绍了 Go Gin 框架,包括它的一些优势和特点,然后通过一个入门示例,演示了如何安装和使用 Gin 启动一个 WEB 服务器并注册路由。通过短短几行代码就能启动一个 WEB 服务器,可知 Gin 是一个简单、高效且易于使用的框架,非常适合快速开发和迭代。

后续文章将介绍 Go Gin 框架的其他主题内容,敬请期待。

参考资料

[1] Gin 介绍:https://gin-gonic.com/zh-cn/docs/introduction/

作者:陈明勇

个人网站:chenmingyong.cn

文章持续更新,如果本文能让您有所收获,欢迎点赞收藏加关注本号。

微信阅读可搜《Go技术干货》。这篇文章已被收录于 GitHub https://github.com/chenmingyong0423/blog ,欢迎大家 Star 催更并持续关注。

目录
相关文章
|
3月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
799 0
|
25天前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
158 86
|
5月前
|
人工智能 安全 算法
Go入门实战:并发模式的使用
本文详细探讨了Go语言的并发模式,包括Goroutine、Channel、Mutex和WaitGroup等核心概念。通过具体代码实例与详细解释,介绍了这些模式的原理及应用。同时分析了未来发展趋势与挑战,如更高效的并发控制、更好的并发安全及性能优化。Go语言凭借其优秀的并发性能,在现代编程中备受青睐。
160 33
|
18天前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟 蒋星熠Jaxonic,执着的星际旅人,用Go语言编写代码诗篇。🚀 Go语言以简洁、高效、并发为核心,助力云计算与微服务革新。📚 本文详解Go语法、并发模型、性能优化与实战案例,助你掌握现代编程精髓。🌌 从goroutine到channel,从内存优化到高并发架构,全面解析Go的强大力量。🔧 实战构建高性能Web服务,展现Go在云原生时代的无限可能。✨ 附技术对比、最佳实践与生态全景,带你踏上Go语言的星辰征途。#Go语言 #并发编程 #云原生 #性能优化
|
3月前
|
人工智能 负载均衡 监控
使用 Go 和 Gin 实现高可用负载均衡代理服务器
本文基于Go语言和Gin框架,实现了一个企业级负载均衡代理服务器,支持动态路由、健康检查、会话保持等功能。具备高可用性与高性能,单节点支持100k+ QPS,延迟达亚毫秒级,并提供完整的压力测试方案与优化建议。
103 7
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
4月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
6月前
|
存储 算法 数据可视化
【二叉树遍历入门:从中序遍历到层序与右视图】【LeetCode 热题100】94:二叉树的中序遍历、102:二叉树的层序遍历、199:二叉树的右视图(详细解析)(Go语言版)
本文详细解析了二叉树的三种经典遍历方式:中序遍历(94题)、层序遍历(102题)和右视图(199题)。通过递归与迭代实现中序遍历,深入理解深度优先搜索(DFS);借助队列完成层序遍历和右视图,掌握广度优先搜索(BFS)。文章对比DFS与BFS的思维方式,总结不同遍历的应用场景,为后续构造树结构奠定基础。
268 10
|
8月前
|
存储 Go
Go 语言入门指南:切片
Golang中的切片(Slice)是基于数组的动态序列,支持变长操作。它由指针、长度和容量三部分组成,底层引用一个连续的数组片段。切片提供灵活的增减元素功能,语法形式为`[]T`,其中T为元素类型。相比固定长度的数组,切片更常用,允许动态调整大小,并且多个切片可以共享同一底层数组。通过内置的`make`函数可创建指定长度和容量的切片。需要注意的是,切片不能直接比较,只能与`nil`比较,且空切片的长度为0。
194 3
Go 语言入门指南:切片

热门文章

最新文章