Go语言 Gin处理响应
Posted jeikerxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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处理响应的主要内容,如果未能解决你的问题,请参考以下文章