当前位置:首页 » 《关于电脑》 » 正文

golang学习笔记10——golang 的 Gin 框架,快速构建高效 Web 应用

14 人参与  2024年10月11日 12:40  分类 : 《关于电脑》  评论

点击全文阅读


推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔记专栏

文章目录

1.Gin 框架简介2.安装 Gin 框架3.创建一个简单的 Web 应用4.中间件的使用5.请求参数的获取6.总结

在 Go 语言的众多优秀 Web 框架中,Gin 以其高性能、简洁易用的特点脱颖而出。本文将详细介绍如何使用 Gin 框架构建一个简单的 Web 应用。

1.Gin 框架简介

Gin 是一个用 Go 语言编写的 HTTP Web 框架,它具有快速、高效、灵活等特点。Gin 基于 httprouter 实现了路由功能,并提供了中间件、请求处理、响应生成等一系列功能,使得开发者能够快速构建出高性能的 Web 应用。

2.安装 Gin 框架

在使用 Gin 框架之前,需要先安装 Go 语言环境。安装完成后,可以使用以下命令安装 Gin 框架:

go get -u github.com/gin-gonic/gin

3.创建一个简单的 Web 应用

第一步:创建一个新的 Go 语言项目,并在项目目录下创建一个名为 main.go 的文件。第二步:在 main.go 文件中,导入 Gin 框架包:
package mainimport "github.com/gin-gonic/gin"
第三步:创建一个 Gin 引擎实例:
func main() {    r := gin.Default()}

gin.Default() 创建了一个带有默认中间件的 Gin 引擎实例,包括 Logger 和 Recovery 中间件。

第四步:定义路由和处理函数:
r.GET("/hello", func(c *gin.Context) {    c.JSON(200, gin.H{       "message": "Hello, Gin!",    })})

上述代码定义了一个 GET 请求的路由 /hello,当访问该路由时,会调用匿名函数,返回一个 JSON 格式的响应。

第五步:启动服务器:
r.Run(":8080")

r.Run(“:8080”) 启动了一个 HTTP 服务器,监听在 8080 端口。
现在,运行 main.go 文件,就可以在浏览器中访问 http://localhost:8080/hello,看到 “Hello, Gin!” 的响应。

4.中间件的使用

中间件是 Gin 框架的一个强大功能,它可以在请求处理的不同阶段进行一些通用的操作,如日志记录、权限验证、错误处理等。

4.1 定义一个中间件函数:
func myMiddleware(c *gin.Context) {    // 在请求处理之前执行的代码    println("Before request")    // 调用下一个处理函数    c.Next()    // 在请求处理之后执行的代码    println("After request")}
4.2 在路由中使用中间件:
r.Use(myMiddleware)r.GET("/world", func(c *gin.Context) {    c.JSON(200, gin.H{       "message": "Hello, World!",    })})

上述代码在 /world 路由上使用了 myMiddleware 中间件。当访问 /world 路由时,中间件函数会在处理函数之前和之后执行相应的代码。

5.请求参数的获取

Gin 框架提供了多种方式获取请求参数,包括查询参数、路径参数和请求体参数。

5.1 获取查询参数:
r.GET("/query", func(c *gin.Context) {    name := c.Query("name")    age := c.DefaultQuery("age", "18")    c.JSON(200, gin.H{       "name": name,       "age":  age,    })})

在上述代码中,c.Query(“name”) 用于获取名为 name 的查询参数,如果参数不存在,则返回空字符串。c.DefaultQuery(“age”, “18”) 用于获取名为 age 的查询参数,如果参数不存在,则返回默认值 18。

5.2 获取路径参数:
r.GET("/user/:id", func(c *gin.Context) {    id := c.Param("id")    c.JSON(200, gin.H{       "id": id,    })})

在上述代码中,c.Param(“id”) 用于获取路径参数 id 的值。

5.3 获取请求体参数:
type User struct {    Name string `json:"name"`    Age  int    `json:"age"`}r.POST("/user", func(c *gin.Context) {    var user User    if err := c.ShouldBindJSON(&user); err!= nil {       c.JSON(400, gin.H{          "error": err.Error(),       })       return    }    c.JSON(200, gin.H{       "user": user,    })})

在上述代码中,定义了一个结构体 User,用于接收请求体中的 JSON 数据。c.ShouldBindJSON(&user) 用于将请求体中的 JSON 数据绑定到 user 结构体上,如果绑定失败,则返回错误响应。

6.总结

Gin 框架是一个非常强大的 Go 语言 Web 框架,它提供了丰富的功能和简洁的 API,使得开发者能够快速构建出高效的 Web 应用。本文介绍了 Gin 框架的基本使用方法,包括安装、创建 Web 应用、使用中间件和获取请求参数等。希望本文能够对你学习和使用 Gin 框架有所帮助。

关注我看更多有意思的文章哦!??


点击全文阅读


本文链接:http://zhangshiyu.com/post/170512.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 他的干妹妹怀孕后,我闪婚了文集(林诺陆深)全书免费_(林诺陆深)他的干妹妹怀孕后,我闪婚了文集后续(林诺陆深)
  • 江先生,你要听话列表列表_江先生,你要听话列表(许清欢江砚舟)
  • 一抹斜阳相思泪后续+必读夏知微陆远川完本_一抹斜阳相思泪后续+必读(夏知微陆远川)
  • 「不当假少爷后,我娶了首富当老婆」免费试读_萧寒沈凌薇章节多结局预体验‌
  • 全书浏览我死后,数万网友对我进行审判火爆(董天华尹瑶)_我死后,数万网友对我进行审判火爆(董天华尹瑶)全书结局
  • 纨绔恶少抽盲盒选妻子,我换嫁绝嗣总裁后他发疯求原谅+免费+后续列表_纨绔恶少抽盲盒选妻子,我换嫁绝嗣总裁后他发疯求原谅+免费+后续(阮玉绵)
  • 完结文晚云为落日溺亡++后续列表_完结文晚云为落日溺亡++后续(裴念舒)
  • [修仙:我在云疆养仙蚕]章节多结局预体验‌_「林珂」小说无删减版在线阅读
  • 全书浏览我死后,数万网友对我进行审判++番外(董天华尹瑶)_我死后,数万网友对我进行审判++番外(董天华尹瑶)全书结局
  • 被兄弟俩接连当工具人后,我杀疯了后续+(贺云舟)全书免费_(贺云舟)被兄弟俩接连当工具人后,我杀疯了后续+后续(贺云舟)
  • [发现装穷老公的真面目后,我迎来美好人生]反转剧情碎片化试读_傅思瀚方知晓晓晓完结
  • 完结文未婚夫求我放过他,换掉联姻对象后他却傻眼了。列表_完结文未婚夫求我放过他,换掉联姻对象后他却傻眼了。(傅深)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1