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處理響應內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Gin框架之參數綁定的實現
- golang微服務框架基礎Gin基本路由使用詳解
- 基於Go語言構建RESTful API服務
- gin 獲取post請求的json body操作
- Go語言中的Struct結構體