Gin 框架介绍与快速入门
目录
- Gin 框架介绍与快速入门
- 1.gin.Engine
- 2.gin.Context
- 1.安装
- 2.导入
- 3.第一个Gin 应用
- 1. 快速和轻量级
- 2. 路由和中间件
- 3. JSON解析
- 4. 支持插件
- 5. Gin相关文档
- 一、Gin框架介绍
- 二、基本使用
- 三、应用举例
- 四、Gin 入门核心
一、Gin框架介绍
Gin是一个轻量级的Go语言Web框架,它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能,Gin成为Go语言中最受欢迎的Web框架之一。以下是一些Gin框架的主要特点:
1. 快速和轻量级
Gin框架的设计注重性能和效率,采用了一些优化措施,使其成为一个快速而轻量级的框架。
2. 路由和中间件
Gin提供了强大的路由功能,支持参数传递、路由分组等特性。同时,它支持中间件的使用,可以方便地在请求处理过程中执行一系列的操作,比如身份验证、日志记录等。
3. JSON解析
Gin内置了对JSON的解析和序列化的支持,使得处理JSON数据变得简单而高效。
4. 支持插件
Gin允许开发者通过插件来扩展框架的功能,这样可以根据项目的需求进行灵活的定制。
5. Gin相关文档
- GitHub 地址:https://github.com/gin-gonic/gin
- 中文文档:https://gin-gonic.com/zh-cn/docs/
二、基本使用
1.安装
下载并安装
Gin
:go get github.com/gin-gonic/gin@latest
2.导入
将其导入您的代码中:
import"github.com/gin-gonic/gin"
(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。
import"net/http"
3.第一个Gin 应用
创建示例工程目录
gin-demo
mkdir gin-demo
目录下新建
gin.go
源文件:package main
import(
"github.com/gin-gonic/gin"
"net/http"
)
funcmain(){
// 1. 创建一个默认的Gin引擎
server := gin.Default()
// 2. 定义路由:当使用 GET 方法访问路径为 /hello 时,执行回调函数
server.GET("/hello",func(c *gin.Context){
// 3. 在回调函数中,返回一个字符串 "hello, go" 并设置HTTP状态码为200 OK
c.String(http.StatusOK,"hello, go")
})
// 4. 启动服务,监听在 0.0.0.0:8080 上
server.Run(":8080")// 如果不指定端口号,默认为8080
}
代码解释如下:
server := gin.Default()
: 创建一个Gin引擎。gin.Default()
返回一个带有默认中间件的Gin引擎,包括Logger和Recovery中间件,用于日志记录和恢复。server.GET("/hello", func(c *gin.Context) {...})
: 定义了一个GET方法的路由,当访问路径是/hello
时,执行后面的回调函数。这里的回调函数使用gin.Context
对象处理HTTP请求和构造HTTP响应。c.String(http.StatusOK, "hello, go")
: 在回调函数中,通过c.String
方法返回一个字符串 "hello, go" 并设置HTTP状态码为200 OK。server.Run(":8080")
: 启动Web服务,监听在0.0.0.0:8080。如果不指定端口号,默认使用8080端口。此时,你可以通过浏览器或HTTP客户端访问http://localhost:8080/hello
,将会得到 "hello, go" 的响应。
在项目 gin-demo 目录下,执行
go mod init gin-demo
和 go mod tidy
命令完成依赖导入,将自动生产 go.mod 、go.sum 文件。go mod init gin-demo
go mod tidy
gin-demo 目录执行命令
go run gin.go
启动 gin Web Server:go run gin.go
看到输出监听端口了,就认为已经启动成功了。
最后通过浏览器访问: http://localhost:8080/hello,就会输出如下:
三、应用举例
以下项目都是使用 Gin 框架开发的:
- gorush:Go 编写的通知推送服务器。
- fnproject:容器原生,云 serverless 平台。
- photoprism:基于 Go 和 Google TensorFlow 实现的个人照片管理工具。
- krakend:拥有中间件的超高性能 API 网关。
- picfit:Go 编写的图像尺寸调整服务器。
- gotify:基于 WebSocket 进行实时消息收发的简单服务器。
- cds:企业级持续交付和 DevOps 自动化开源平台。
四、Gin 入门核心
1.gin.Engine
在
Gin
里面,一个 Web 服务器被抽象成为 Engine
。你可以在一个应用里面创建多个 Engine
实例,监听不同的端口。Engine
承担了路由注册、接入 middleware 的核心职责。如图,它组合了
RouterGroup
,RouterGroup
才是实现路由功能的核心组件。2.gin.Context
gin.Context
是 Gin
里面的核心类型。应该说,你日常最经常的就是和它打交道。它的字面意思就是“上下文”,在
Gin
里面,它的核心职责是:- 处理请求
- 返回响应
如图,
Request
代表的就是请求,Writer
代表的就是响应。分享是一种快乐,开心是一种态度!
链接:https://www.cnblogs.com/taoxiaoxin/p/17945334
(版权归原作者所有,侵删)
阅读原文 最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。