Gin框架入门记录(1)-我的第一个Gin应用

1. 第一个Gin应用

1.0. 跳得有些快是不是?

细心的朋友会发现这是博主Golang入门系列第三章
博主是个比较随性的人,Go语言的变量、函数这些实验我打算直接跳过,一是之前有很长时间C的使用经验,二是闲来无事老是看些编程语言教学,例如Kotlin、Python还有Go,所以我打算直接从框架实践入手,遇到疑问再回过头来补充学习
那么我们直接开始吧

1.1. 介绍

别点 (超级建议跳过这个介绍部分直接看1.2,因为这小作文我直接从Gin文档搬的)

Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API,但性能比 Martini 快 40 倍

特性

快速

基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。

支持中间件

传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作 DB。

Crash 处理

Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover 它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic!

JSON 验证

Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。

路由组

更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。

错误管理

Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。

内置渲染

Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。

可扩展性

新建一个中间件非常简单,去查看示例代码吧。

1.2. 安装

使用Mod依赖管理工具,在项目根目录执行 :go mod init <packagename>

image

如下图,项目根目录下会生成 go.mod文件:

image

还是在项目根目录:go get -u github.com/gin-gonic/gin

image

image

如此我们便可以通过import gin来创建我们的应用了好激动(大嘘)

1.3. 第一个Gin应用

第一步,自然是一个.go原文件用来编写main函数,我这里便是mygin.go

使用下面代码导入Gin和(可选)net/http

import "github.com/gin-gonic/gin"
import "net/http"

如下写入我们的第一个Hello应用

package main

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

func main() {
	// 创建一个默认的Gin路由引擎
	server := gin.Default()

	// 定义路由:当使用GET请求访问"/hello"时,执行相应的处理回调函数
	server.GET("/hello", func(c *gin.Context) {
		// 在回调函数中,返回一个HTTP 200 OK的响应,并在响应体中写入"Hello, World!"
		// 这里的c是gin.Context类型的参数,代表当前请求的上下文
		// 使用c.String方法来设置响应的状态码和响应体
		// http.StatusOK是一个常量,表示HTTP 200 OK的状态码
		c.String(http.StatusOK, "Hello, World!")
	})

	// 启动HTTP服务器,监听在8080端口
	// server.Run()方法会阻塞当前线程,直到服务器停止
	// 这里的8080是指定的端口号,可以根据需要修改
	// 如果需要在其他端口上运行,可以将8080替换为其他端口号
	server.Run(":8080")
}

1.4. Let's run that

在项目根目录下执行go run <你的main函数所在的.go文件>

image

看到输出监听端口了,就认为已经启动成功了。

image

(因为是在云服务器上运行的所以隐去了IP,大家如果是在本地测试的话用127.0.0.1:8080/hello即可访问)

posted @ 2025-04-04 20:45  Chuan81  阅读(62)  评论(0)    收藏  举报