Golang Gin 框架入门介绍(二)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在接口定义和参数解析方面的内容。正文一、定义 GET, POST, PUT, PATCH, DELETE 和 OPTIONS 的接口

目录

  • 前言
  • 正文
  • 一、定义 GET, POST, PUT, PATCH, DELETE 和 OPTIONS 的接口
  • 二、解析 path 中的参数
  • 结尾

前言

Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在接口定义和参数解析方面的内容。

正文

一、定义 GET, POST, PUT, PATCH, DELETE 和 OPTIONS 的接口

packagemainimport"github.com/gin-gonic/gin"funcmain() {
// 创建一个默认的 gin 路由器router :=gin.Default()
// 定义一个Get类型的服务接口router.GET("/someGet", getting)
// 定义一个Post类型的服务接口router.POST("/somePost", posting)
// 定义一个Put类型的服务接口router.PUT("/somePut", putting)
// 定义一个DELETE类型的服务接口router.DELETE("/someDelete", deleting)
// 定义一个Patch类型的服务接口router.PATCH("/somePatch", patching)
// 定义一个Head类型的服务接口router.HEAD("/someHead", head)
// 定义一个Options类型的服务接口router.OPTIONS("/someOptions", options)
// 启动服务,默认监听8080端口,或者通过PORT环境变量设置router.Run()
}

通过简单的编码,基于 Gin 的服务器就支持了多种类型请求的服务接口。另外,在服务启动的时候,我们也可以通过直接指明端口的方式来设置服务监听的端口,比如下面的方式:

router.Run(":3001")

上面的语句,我们可以知道服务监听了 3001 端口。

二、解析 path 中的参数

下面介绍几种 path 中存在参数时,如何解析的情况,具体请看下面的代码示例。

packagemainimport"github.com/gin-gonic/gin"funcmain() {
router :=gin.Default()
// 可以匹配 /user/john,但是不能匹配 /user/ 和 /user 请求router.GET("/user/:name", func(c*gin.Context) {
name :=c.Param("name")
c.String(http.StatusOK, "Hello %s", name)
    })
// 可以匹配 /user/john/ 和 /user/john/sendrouter.GET("/user/:name/*action", func(c*gin.Context) {
name :=c.Param("name")
action :=c.Param("action")
message :=name+" is "+actionc.String(http.StatusOK, message)
    })
// 对于每个匹配的请求,上下文将保存路由定义router.POST("/user/:name/*action", func(c*gin.Context) {
c.FullPath() =="/user/:name/*action"// true    })
router.Run(":8080")
}

可以看出,解析 path 中的参数时需要注意的细节还是非常多的。

结尾

好了,今天关于 Gin 在接口定义和参数解析方面的内容就介绍完了,后续内容敬请期待,感谢!



作者简介:大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,同时也是CSDN博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!



目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
探索Gorm - Golang流行的数据库ORM框架
探索Gorm - Golang流行的数据库ORM框架
|
3月前
|
Go 数据安全/隐私保护
go 基于gin编写encode、decode、base64加密接口
go 基于gin编写encode、decode、base64加密接口
29 2
|
3月前
|
负载均衡 监控 Go
使用Golang框架构建分布式系统
本文探讨了使用Golang构建分布式系统的方法。Golang因其高效、简洁的语法和并发支持成为理想的开发语言。文中列举了几个常用的Golang框架,如Echo、Gin、gRPC和NATS等,并强调了服务拆分、通信机制、负载均衡等构建分布式系统的关键要素。通过选择合适的框架,遵循需求分析、技术选型、服务设计等步骤,开发者可以构建出高性能、高可用和可扩展的系统。此外,文中还提供了一个使用gRPC和etcd的简单代码案例来说明实现过程。
168 4
|
19天前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
28天前
|
测试技术 Go 开发者
掌握Golang测试:从入门到实践
【8月更文挑战第31天】
28 0
|
2月前
|
JSON 中间件 Go
Go语言Web框架Gin介绍
【7月更文挑战第19天】Gin是一个功能强大、高性能且易于使用的Go语言Web框架。它提供了路由、中间件、参数绑定等丰富的功能,帮助开发者快速构建高质量的Web应用。通过本文的介绍,你应该对Gin框架有了初步的了解,并能够使用它来开发简单的Web服务。随着你对Gin的深入学习和实践,你将能够利用它构建更复杂、更强大的Web应用。
|
1月前
|
关系型数据库 API Go
[golang]在Gin框架中使用JWT鉴权
[golang]在Gin框架中使用JWT鉴权
|
1月前
|
网络协议 Go
[golang]gin框架接收websocket通信
[golang]gin框架接收websocket通信
|
3月前
|
Kubernetes Go 云计算
Golang 入门技术文档
**Golang 技术文档摘要:** Golang,由Google开发,是一种静态强类型、编译型语言,广泛应用于云计算、网络编程和分布式系统。本文档介绍了Golang的基础和特性,包括安装配置、 HelloWorld 示例、基本语法,如变量推导、函数多返回值和并发编程(goroutine、channel)。Golang的并发模型基于轻量级goroutine和channel,支持高效并发处理。此外,文档还提及了接口和多态性,展示了如何使用接口实现类型间的交互。Golang在Docker、Kubernetes等项目中得到应用,适用于后端服务开发。【6月更文挑战第9天】
39 1
|
4月前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
203 1