Gin 框架介绍与快速入门

打印 上一主题 下一主题

主题 928|帖子 928|积分 2784

Gin 框架介绍与快速入门


目录

一、Gin框架介绍

Gin是一个轻量级的Go语言Web框架,它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能,Gin成为Go语言中最受欢迎的Web框架之一。以下是一些Gin框架的主要特点:
1. 快速和轻量级

Gin框架的设计注重性能和效率,采用了一些优化措施,使其成为一个快速而轻量级的框架。
2. 路由和中间件

Gin提供了强大的路由功能,支持参数传递、路由分组等特性。同时,它支持中间件的使用,可以方便地在请求处理过程中执行一系列的操作,比如身份验证、日志记录等。
3. JSON解析

Gin内置了对JSON的解析和序列化的支持,使得处理JSON数据变得简单而高效。
4. 支持插件

Gin允许开发者通过插件来扩展框架的功能,这样可以根据项目的需求进行灵活的定制。
5. Gin相关文档

二、基本使用

1.安装

下载并安装Gin:
  1. go get github.com/gin-gonic/gin@latest
复制代码
2.导入

将其导入您的代码中:
  1. import "github.com/gin-gonic/gin"
复制代码
(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。
  1. import "net/http"
复制代码
3.第一个Gin 应用

创建示例工程目录 gin-demo
  1. mkdir gin-demo
复制代码
目录下新建 gin.go 源文件:
  1. package main
  2. import (
  3.         "github.com/gin-gonic/gin"
  4.         "net/http"
  5. )
  6. func main() {
  7.         // 1. 创建一个默认的Gin引擎
  8.         server := gin.Default()
  9.         // 2. 定义路由:当使用 GET 方法访问路径为 /hello 时,执行回调函数
  10.         server.GET("/hello", func(c *gin.Context) {
  11.                 // 3. 在回调函数中,返回一个字符串 "hello, go" 并设置HTTP状态码为200 OK
  12.                 c.String(http.StatusOK, "hello, go")
  13.         })
  14.         // 4. 启动服务,监听在 0.0.0.0:8080 上
  15.         server.Run(":8080") // 如果不指定端口号,默认为8080
  16. }
复制代码
代码解释如下:

  • 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 文件。
  1. go mod init gin-demo
  2. go mod tidy
复制代码
gin-demo 目录执行命令 go run gin.go 启动 gin Web Server:
  1. 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 代表的就是响应。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表