【Golang】Gin框架:Go语言中的轻量级Web框架

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑

🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。

🏆《博客》:Python全栈,Golang开发,PyQt5和Tkinter桌面开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,云原生K8S,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏: Go语言开发零基础到高阶实战
景天的主页: 景天科技苑

文章目录

Go语言web框架Gin

一、认识Gin

1. 什么是Gin

Gin是一个用Go语言编写的高性能HTTP web框架,它提供了快速的HTTP路由、中间件支持以及JSON编码等功能。

Gin框架以其简洁的API和高效的性能著称,非常适合用来构建RESTful API和中小型Web应用。

  • Gin:Go 语言编写的 Web 框架,以更好的性能实现类似 Martini 框架的 API。
  • Gin是一个golang的net/http库封装的web微框架,封装比较优雅,API友好,源码注释比较明确。具有快速灵活,容错方便等特点。

2. 同类框架对比分析

  • Beego:开源的高性能 Go 语言 Web 框架。

  • beego是一个快速开发Go应用的http框架,go 语言方面技术大牛。beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架。

  • Iris:全宇宙最快的 Go 语言 Web 框架。完备 MVC 支持,未来尽在掌握。

    Iris是一个快速,简单但功能齐全的和非常有效的web框架。提供了一个优美的表现力和容易使用你的下一个网站或API的基础。

二、我们为什么要学习web框架

作为初学者很多时候,在学习一个框架的时候,一定要搞清楚我们为什么要学习它,这个非常的重要。

随着互联网技术的发展,在早期我们大部分情况下,编写的都是静态网页html。如果有100篇文章就要编写一百篇与之对应的静态网页。这样是非常痛苦的。

于是乎开始有了动态网页,动态网页必须要结合服务器端的技术,比如:Go、Java等。有了这些服务端语言的加持这样就可以完成一个静态网页到动态网页的转化。如下图:

  • 如果假设我们这里选择的是:gin和gorm。
  • 用户在浏览器访问地址,这个地址其实是服务器提供。用于寻址一样。先找到服务器在哪里,我要访问服务器的什么
  • 如果根据ip找到地址以后,通过port找到服务器的服务,原来你是一个go的web服务。就开始进入到程序中把对应的逻辑去执行(这个部分未来是我们使用gin定义路由的对应的要执行的事情)
  • 在执行的逻辑中,我们肯定会调用gorm把数据库存储起来的数据,查询出来。
  • 把查询出来的数据,和你定义好的模板开始用对应的模板语法进行渲染和碰撞。
  • 最后就呈现出来了,一个完整的静态网页。
  • 这也就是经典的:B/S架构。B代表的是Broswer浏览器,S代表的是:Server是服务端也就是我们学习的GO

三、环境的准备和搭建

1. 文档和go环境

2. 项目搭建过程

1: 创建jt-gin工程

2:创建项目的mod文件

这个文件的作用就是:可以用来记录你未来安装的模块。方便进行统一管理。

创建好以后:

3:配置项目的环境

检查GOROOT

检查GOPATH

添加下载代理,这是七牛云的代理,它把go的一些常用的库缓存到它的服务器上,配了代理直接就可以从国内下载,不配置的话大概率下载第三方库会失败

复制GOPROXY=https://goproxy.cn,direct 放入到Enironment中如下:

一切准备就绪,接下来开始安装gin

四、Gin安装使用

Gin 官方文档地址:https://gin-gonic.com/zh-cn/docs/

1. 安装gin

在使用Gin框架之前,首先需要确保你的开发环境中已经安装了Go语言。访问Go官网下载适合你操作系统的安装包,并按照提示完成安装。配置好环境变量后,可以通过以下命令来安装Gin框架:

在终端命令行执行如下命令:

go 复制代码
go get -u github.com/gin-gonic/gin

这条命令会下载并安装Gin框架的最新版本到你的Go工作区中。

检查是否安装成功

如果看到这个就说明安装成功了

2. Gin框架的基本使用

创建第一个Gin程序

新建一个HelloWorld.go文件,参考以下代码编写一个基本的Gin程序:

官网有提供

go 复制代码
package main

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

func main() {
    // 创建gin服务,创建一个默认的路由引擎ginServer。然后可以根据ginServer.GET,ginServer.ROST,ginServer.DELETE等内置函数处理客户端发来的http请求。
    ginServer := gin.Default()
    // localhost:8088/hello
    // 处理请求的函数 *gin.Context
    ginServer.GET("/hello", func(c *gin.Context) {
        // c.JSON:响应给客户端JSON格式的数据 func (c *Context) JSON(code int, obj any)
        // gin.H : 参数 key value
        // gin.H 是一个便捷的快捷方式,你也可以直接使用 map[string]interface{} 来代替它
        c.JSON(200, gin.H{"message": "Hello world!"})
    })
    // 启动HTTP服务,可以修改端口。默认是8080端口
    ginServer.Run(":8088")
}

这段代码首先导入了Gin包,然后通过gin.Default()创建了一个默认的Gin引擎实例,它包含了默认的中间件(如日志记录和错误恢复)。

接着,使用ginServer.GET("/hello")定义了一个GET请求的路由,当客户端请求根路径时,会执行匿名函数,其中c类型的gin.Context指针就是返回的内容,一般可以用c.HTML定义返回html文件,或者c.JSON返回JSON类型文件。JSON传参的格式是状态码code和空接口object;HTML是状态码code,模板名称name和空接口object。我们这里返回一个json字符串"Hello world!"。最后,通过ginServer.Run()启动Gin服务,我们监听8088端口。

默认监听在8080端口。

运行我们的框架,浏览器访问

浏览器访问,能拿到数据,运行成功

关于gin.H看下源码,就是 map[string] any

引入 gin.H 这个东西可以简化生成 json 的方式,如果需要嵌套 json,那么嵌套 gin.H 就可以了。例子:

go 复制代码
c.JSON(http.StatusOK, gin.H{
            "status":  gin.H{
                "code": http.StatusOK,
                "status":      "登录成功",
            },
            "message": message
        })
相关推荐
knoci16 分钟前
【Go】-基于Gin框架的博客项目
后端·学习·golang·gin
每天都要喝奶茶18 分钟前
vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
前端·vue.js·uni-app
May_Xu_19 分钟前
vue3+less使用主题定制(多主题定制)可切换主题
前端·javascript·vue.js·vue·less·css3
qq_4275060820 分钟前
less解决function中return写法在浏览器被识别成Object导致样式失败的问题
前端·css·less
Elastic 中国社区官方博客25 分钟前
将你的 Kibana Dev Console 请求导出到 Python 和 JavaScript 代码
大数据·开发语言·前端·javascript·python·elasticsearch·ecmascript
北京_宏哥1 小时前
《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
前端·python·测试
小霖家的混江龙1 小时前
Vite 打包 H5 如何注入版本号
前端·vite
叶不休1 小时前
DOM---鼠标事件类型(移入移出)
开发语言·前端·javascript·css·chrome·前端框架·html
爱编程的鱼1 小时前
web前后端交互方式有哪些?
前端·okhttp
Xiaoyu Wang2 小时前
Go语言八股(Ⅲ)
开发语言·后端·golang