Gin的简单介绍[极简]

Gin的简单介绍

Gin 是一个用 Go 语言编写的高性能 HTTP Web 框架。它主要的特点包括:
高性能:Gin 的性能非常出色,能够处理大量的并发请求。
轻量级:Gin 保持了核心功能的精简,使得框架本身不会带来过多的开销。
路由和中间件:Gin 提供了强大的路由系统和灵活的中间件机制,可以轻松地添加认证、日志记录等功能。
JSON 序列化:内置了高效的 JSON 序列化功能,可以直接返回 JSON 格式的数据。
HTTP 缓存:支持 HTTP 缓存控制,可以减少服务器负载。
静态文件服务:可以方便地提供静态文件服务,如图片、CSS 和 JavaScript 文件。
模板引擎:支持多种模板引擎,如 HTML 模板引擎,便于动态页面的渲染。

使用 Gin 构建 Web 应用程序的一般流程如下:
初始化 Gin 引擎:创建一个 gin.Engine 实例。
定义路由:使用 GET, POST 等方法定义路由和对应的处理器函数。
添加中间件:可以在路由之前或之后添加中间件,用于执行通用逻辑,如日志记录、身份验证等。
启动服务器:调用 Run 方法启动 HTTP 服务器。

package main

// Gin 的学习要点
// 如何定义路由:包含参数路由、通配符路由
// 如何处理输入输出
// 如何使用 middleware 解决 AOP 问题
import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// main函数是程序的入口点
func main() {
    // 初始化Gin框架的默认路由器
    router := gin.Default()

    // 定义路由规则,处理GET请求
    router.GET("/hello", func(cont *gin.Context) {
        // 返回HTTP状态码200和字符串"hello gin"
        cont.String(http.StatusOK, "hello gin")
    })

    // 启动服务器,监听8080端口,可以自定义启动端口,默认是8080
    router.Run(":8080")
}

访问结果如下图展示
返回结果展示
运行时展示:
运行gin
遇到的问题以及处理过程:
Gin运行时的问题
** 报错原因**:
根据通义灵码的翻译显示报错原因如下:
这个问题通常发生在Go的模块模式下,当你尝试导入一个在vendor目录中找不到的模块时。Go 1.14及更高版本默认启用了模块支持,并且如果go.mod文件存在,它会禁用vendor目录的自动查找。

解决办法
gin目录
这个图片是gin代码的模块位置,然后对照我自己gin_basic的目录位置做了一下调整,在module 这里面添加了一个上层目录最后运行的时候就可以了。
修改完成之后的运行结果展示
修改之后的结果展示

Gin的其他访问方式和路由处理方式

Gin 处理POST路由规则

func main() {
	// 初始化Gin框架的默认路由器
	router := gin.Default()

	// 定义路由规则,处理POST请求
	router.POST("/POST", func(c *gin.Context) {
		c.String(200, "/GIN PSOT")
	})

	// 启动服务器,监听8080端口
	router.Run(":8080")
}

Apipost 结果展示

Apipost 结果展示

参数路由展示

func main() {
	// 初始化Gin框架的默认路由器
	router := gin.Default()
	router.POST("/POST/:name", func(c *gin.Context) {
		name := c.Param("name")
		c.String(200, "/GIN PSOT,"+name)
	})

	// 启动服务器,监听8080端口
	router.Run(":8080")
}

Apipost 结果展示

Apipost 结果展示

通配符路由展示

package main

// Gin 的学习要点
// 如何定义路由:包含参数路由、通配符路由
// 如何处理输入输出
// 如何使用 middleware 解决 AOP 问题
import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// main函数是程序的入口点
func main() {
	// 初始化Gin框架的默认路由器
	router := gin.Default()
	router.POST("/POST/*.html", func(c *gin.Context) {
		view := c.Param(".html")
		c.String(200, "/GIN PSOT,"+view)
	})

	// 启动服务器,监听8080端口
	router.Run(":8080")
}

Apipost 结果展示

Apipost 结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值