Gin 框架介绍与快速入门

Gin 框架介绍与快速入门

一、Gin框架介绍

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

1. 快速和轻量级

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

2. 路由和中间件

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

3. JSON解析

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

4. 支持插件

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

5. Gin相关文档

二、基本使用

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"
)

func main() {
	// 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
}

代码解释如下:

  1. server := gin.Default(): 创建一个Gin引擎。gin.Default()返回一个带有默认中间件的Gin引擎,包括Logger和Recovery中间件,用于日志记录和恢复。
  2. server.GET("/hello", func(c *gin.Context) {...}): 定义了一个GET方法的路由,当访问路径是/hello时,执行后面的回调函数。这里的回调函数使用gin.Context对象处理HTTP请求和构造HTTP响应。
  3. c.String(http.StatusOK, "hello, go"): 在回调函数中,通过c.String方法返回一个字符串 "hello, go" 并设置HTTP状态码为200 OK。
  4. server.Run(":8080"): 启动Web服务,监听在0.0.0.0:8080。如果不指定端口号,默认使用8080端口。此时,你可以通过浏览器或HTTP客户端访问http://localhost:8080/hello,将会得到 "hello, go" 的响应。

在项目 gin-demo 目录下,执行 go mod init gin-demogo 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 的核心职责。

如图,它组合了 RouterGroupRouterGroup 才是实现路由功能的核心组件。

2.gin.Context

gin.ContextGin 里面的核心类型。应该说,你日常最经常的就是和它打交道。

它的字面意思就是“上下文”,在 Gin 里面,它的核心职责是:

  • 处理请求
  • 返回响应

如图,Request 代表的就是请求,Writer 代表的就是响应。

本文作者:贾维斯Echo

本文链接:https://www.cnblogs.com/taoxiaoxin/p/17945334

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   贾维斯Echo  阅读(2073)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
  2. 2 稻香 稻香 (2015中国好声音第四季现场) - 周杰伦;徐林;Will Jay
稻香 - 稻香 (2015中国好声音第四季现场) - 周杰伦;徐林;Will Jay
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

稻香 (2015中国好声音第四季现场) - 周杰伦/徐林/Will Jay

词:周杰伦

曲:周杰伦

对这个世界如果你有太多的抱怨

对这个世界如果你有太多的抱怨

跌倒了就不敢继续往前走

为什么人要这么的脆弱堕落

请你打开电视看看

多少人为生命在努力勇敢的走下去

我们是不是该知足

珍惜一切就算没有拥有

还记得你说家是唯一的城堡

还记得你说家是唯一的城堡

随着稻香河流继续奔跑

微微笑小时候的梦我知道

不要哭让萤火虫带着你逃跑

不要哭让萤火虫带着你逃跑

乡间的歌谣永远的依靠

回家吧回到最初的美好

不要这么容易就想放弃

不要这么容易就想放弃

就像我说的

追不到的梦想换个梦不就得了

为自己的人生鲜艳上色

先把爱涂上喜欢的颜色

笑一个吧功成名就不是目的

笑一个吧功成名就不是目的

让自己快乐快乐这才叫做意义

童年的纸飞机

现在终于飞回我手里

所谓的那快乐

所谓的那快乐

赤脚在田里追蜻蜓追到累了

偷摘水果被蜜蜂给叮到怕了

谁在偷笑呢

我靠着稻草人吹着风唱着歌睡着了

哦哦哦哦

珍惜一切就算没有拥有

珍惜一切就算没有拥有

还记得你说家是唯一的城堡

还记得你说家是唯一的城堡

随着稻香河流继续奔跑

微微笑小时候的梦我知道

不要哭让萤火虫带着你逃跑

不要哭让萤火虫带着你逃跑

乡间的歌谣永远的依靠

回家吧回到最初的美好

还记得你说家是唯一的城堡

还记得你说家是唯一的城堡

随着稻香河流继续奔跑

微微笑小时候的梦我知道

不要哭让萤火虫带着你逃跑

不要哭让萤火虫带着你逃跑

乡间的歌谣永远的依靠

回家吧回到最初的美好