Go语言Gin处理响应方式详解
更新时间:2023年01月07日 11:32:31 作者:jeikerxiao
gin框架封装了常用的数据格式方法响应于客户端,下面这篇文章主要给大家介绍了关于Go语言Gin处理响应方式的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
前言
本文介绍Gin框架处理响应数据,支持以字符串、json、xml、文件等格式响应请求。
gin.Context 上下文对象支持多种返回处理结果,下面分别介绍不同的响应方式。
1.以字符串方式响应请求
通过String函数返回字符串。
函数定义:
func (c *Context) String(code int, format string, values …interface{}) r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "hello world") })
2.以json格式响应请求
开发api接口的时候常用的格式就是json,下面是返回json格式数据的例子。
// localhost:8080/user type User struct { Name string `json:"name"` Age int `json:"age"` } r.GET("/user", func(c *gin.Context) { u := &User{ Name: "lucifer", Age: 18, } c.JSON(http.StatusOK, u) })
3.以xml格式响应请求
开发api接口的时候,也有使用xml格式的响应,下面是返回xml格式数据的例子。
// localhost:8080/student type Student struct { Name string `xml:"name"` Age int `xml:"age"` } r.GET("/student", func(c *gin.Context) { s := &Student{ Name: "lucifer", Age: 19, } c.XML(http.StatusOK, s) })
4.以文件格式响应请求
下面介绍说明,gin框架如何直接返回一个文件,可以用来做文件下载。
// 4.1 直接返回 r.GET("/file", func(c *gin.Context) { c.File("./readme.txt") }) // 4.2 返回文件,指定下载文件名 r.GET("/filename", func(c *gin.Context) { c.FileAttachment("./readme.txt", "change_file_name.txt") })
5.示例
package main import ( "github.com/gin-gonic/gin" "net/http" ) /* Gin 处理请求参数 */ func main() { // 一、实例化服务 r := gin.Default() // 二、路由 // 1.直接返回string // localhost:8080 r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "hello world") }) // 2.返回json 数据 // localhost:8080/user type User struct { Name string `json:"name"` Age int `json:"age"` } r.GET("/user", func(c *gin.Context) { u := &User{ Name: "lucifer", Age: 18, } c.JSON(http.StatusOK, u) }) // 3.返回xml数据 // localhost:8080/student type Student struct { Name string `xml:"name"` Age int `xml:"age"` } r.GET("/student", func(c *gin.Context) { s := &Student{ Name: "lucifer", Age: 19, } c.XML(http.StatusOK, s) }) // 4.返回文件 // 4.1 直接返回 r.GET("/file", func(c *gin.Context) { c.File("./readme.txt") }) // 4.2 返回文件,指定下载文件名 r.GET("/filename", func(c *gin.Context) { c.FileAttachment("./readme.txt", "change_file_name.txt") }) // 三、启动服务 r.Run(":8080") }
总结
到此这篇关于Go语言Gin处理响应方式的文章就介绍到这了,更多相关Go语言Gin处理响应内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
Go中阻塞以及非阻塞操作实现(Goroutine和main Goroutine)
本文主要介绍了Go中阻塞以及非阻塞操作实现(Goroutine和main Goroutine),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-05-05go使用errors.Wrapf()代替log.Error()方法示例
这篇文章主要为大家介绍了go使用errors.Wrapf()代替log.Error()的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08
最新评论