栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Gin学习1

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gin学习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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/904863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号