Golang | Gin 简单使用

Posted Parker@1989

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang | Gin 简单使用相关的知识,希望对你有一定的参考价值。

创建Gin引擎的方法有两种:

gin.Default()
gin.New()

gin.Default()和gin.New()的区别是,gin.Default是对gin.new()的封装,添加了logger和recovery的中间件,logger可以很方便的进行调试,recovery可以使用panic中断的恢复。

实现一个简单的请求

我们实现一个最简单的程序,请求并打印一个Hello Gin !

func main() 
	engine := gin.Default()             //创建引擎
	engine.GET("/hello", func(context *gin.Context)     // 定义请求接口和处理匿名函数
		fmt.Println("请求路径:", context.FullPath())
		context.Writer.Write([]byte("Hello Gin!"))
	)
	if err := engine.Run(":8090"); err != nil          //启动引擎,监听8090端口
		log.Print(err)
	

我们再使用通用方法,再完善一个该请求。

func main()
engine := gin.Default()
	engine.Handle("GET", "/hello", func(context *gin.Context) 
		path := context.FullPath()
		fmt.Print(path)

		name := context.DefaultQuery("name", "hello")   // 如果没有name这个key,那么给name变量赋值为“hello”

    context.Writer.Write([]byte("hello " + name))
	)

	if err := engine.Run(); err != nil 
		fmt.Println(err)
	

使用POST请求,处理body数据

// http://localhost/login   POST请求
	engine.Handle("POST", "login", func(context *gin.Context) 
		path := context.FullPath()
		fmt.Println(path)

		name := context.PostForm("name")
		pass := context.PostForm("pass")

		fmt.Println("name:", name, "pass:", pass)

		context.Writer.Write([]byte("name:" + name + "\\npass:" + pass))
	)

// 使用GetPostForm获取数据
engine.POST("/user", func(context *gin.Context) 
		name, exist := context.GetPostForm("name")
		if exist 
			fmt.Println(name)
		

		pass, exist := context.GetPostForm("pass")
		if exist 
			fmt.Println(pass)
		

		context.Writer.Write([]byte("name:" + name + "\\npass:" + pass))
	)

Delete方法

engine.DELETE("/user/:id", func(context *gin.Context) 
		UserID := context.Param("id")

		context.Writer.Write([]byte("delete:" + UserID))
	)

以上是关于Golang | Gin 简单使用的主要内容,如果未能解决你的问题,请参考以下文章

golang-gin框架

#yyds干货盘点# Golang Gin 框架上传介绍

Golang Gin 框架上传介绍

golang gin 学习系列

Golang实践录:使用gin框架实现转发功能:管理后端服务

Golang实践录:使用gin框架实现转发功能:管理后端服务