Gin学习1

Gin学习1,第1张

安装好go,新建一个空白文件夹,然后在当前目录执行:
go get -u github.com/gin-gonic/gin拉取项目,然后新建一个文件main.go,然后写代码:

package main //包名

import "github.com/gin-gonic/gin" //依赖

func main() {  //入口方法
	r := gin.Default() //初始化
	r.GET("/ping", func(c *gin.Context) { //路由
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() //运行
}

默认端口为是8080,可以在Run方法中加入端口号,如:r.Run(":8081")即可修改端口号

关于路由有很多种写法,比如/user/:id,就是当路径为/user/1则可以访问到内部方法,这种属于一种静态化路由方式,想要拿到这个id,需要在方法里面通过Param方法读取:

r.GET("/user/:id", func(c *gin.Context) {
	name := c.Param("id")
	c.String(200, "userid %s", name)
})

如果想要获取动态get参数 ,可以通过Query方法来获取,例如访问/user?id=1

r.GET("/user", func(c *gin.Context) {
	name := c.Query("id")
	c.String(200, "userid %s", name)
})

如果想要获取post参数,可以通过PostForm方法来获取:

r.GET("/user", func(c *gin.Context) {
	name := c.PostForm("id")
	c.String(200, "userid %s", name)
})

如果想输出json,可以使用c实例中得JSON方法来输出:

r.GET("/getjson", func(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "this is json string",
	})
})

上传文件:

r.POST("/upload", func(c *gin.Context) {
	file, err := c.FormFile("file") //获取文件对象
	if err != nil {
		c.String(500, "get form err: %s", err.Error())
		return
	}
	
	filename := filepath.Base(file.Filename) //获取文件名
	if err := c.SaveUploadedFile(file, filename); err != nil { //保存上传文件
		c.String(http.StatusBadRequest, "upload file err: %s", err.Error())
		return
	}
	
	c.String(http.StatusOK, "File %s uploaded successfully", file.Filename)
})

官方很多例子:https://github.com/gin-gonic/examples

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/993955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存