Golang的gin web框架中对于响应的一些处理操作

Golang的gin web框架中对于响应的一些处理操作

通过阅读此篇文章,你会收获什么?

你将会收获到gin框架中对HTTP请求的响应操作,响应操作是对HTTP请求返回特定格式的数据,例如:字符串、JSON、XML、YAML、HTML、路由重定向、文件。另外,你还会了解到XML、YAML、HTML三种文件格式之间的差别,返回文件响应的三种函数方法

返回字符串

//	返回字符串
	router.GET("/string", func(context *gin.Context) {
		context.String(http.StatusOK, "Hello World!")
	})

返回JSON

//	返回JSON
	router.GET("/json", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{"message": "Hello World!", "status": http.StatusOK})
	})

返回JSON(通过结构体)

//	通过结构体返回JSON
	router.GET("/moreJSON", func(c *gin.Context) {
		type MSG struct {
			Name    string `json:"user"`
			Message string
			Number  int
		}
		// tips: msg.Name 变成 msg.user
		msg := MSG{"bob", "Hello World!", 21}

		c.JSON(http.StatusOK, msg)
	})

返回XML

//	返回xml
	router.GET("/xml", func(c *gin.Context) {
		c.XML(http.StatusOK, gin.H{"user": "bob", "message": "Hello World!", "status": http.StatusOK})
	})

返回YAML

//	返回yaml
	router.GET("/yaml", func(c *gin.Context) {
		c.YAML(http.StatusOK, gin.H{"user": "bob", "message": "Hello World!", "status": http.StatusOK})
	})

返回HTML

//	返回html
	router.LoadHTMLGlob("templates/posts/*")
	router.GET("/html", func(c *gin.Context) {
		c.HTML(http.StatusOK, "index.tmpl", gin.H{"title": "posts"})
	})
HTML、YAML、XML的区别

XML和YAML都是配置文件,用于指定类与类之间的关系

XML被设计用来存储和传输数据,其焦点是数据的内容

YAML的作用与XML相同,但作为一种比XML更加简单易读的序列话语言,正被越来越多地用来应用的配置文件开发中

HTML被设计用来显示数据,其焦点是数据的外观

路由重定向

//	路由重定向至百度
	router.GET("/redirect", func(c *gin.Context) {
		c.Redirect(http.StatusMovedPermanently, "https://www.baidu.com/")
	})

文件响应

//	文件响应
	//	在golang中,没有相对文件的路径,只有相对项目的路径
	//	加载静态资源,例如:网站的CSS、JS
	router.Static("/static", "static")
	//	指定某个目录为静态资源目录,可直接访问该目录下的静态资源,URL要具体到文件名称(一般是是用户上传的文件)
	router.StaticFS("/upload", http.Dir("static"))
	//	加载单个静态文件(指定某个具体的文件作为静态资源访问)
	router.StaticFile("/test01.png", "static/test01.png")

router.Static

​ 指定某目录为静态资源目录,可访问该目录下的资源,URL要具体到资源名称

router.StaticFS

​ 功能同router.Static,但是会列出该目录下的所有文件

router.StaticFile

​ 指定某个具体的文件作为静态资源访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值