Go語言Gin處理響應方式詳解
前言
本文介紹Gin框架處理響應數(shù)據(jù),支持以字符串、json、xml、文件等格式響應請求。
gin.Context 上下文對象支持多種返回處理結(jié)果,下面分別介紹不同的響應方式。
1.以字符串方式響應請求
通過String函數(shù)返回字符串。
函數(shù)定義:
func (c *Context) String(code int, format string, values …interface{})
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "hello world")
})2.以json格式響應請求
開發(fā)api接口的時候常用的格式就是json,下面是返回json格式數(shù)據(jù)的例子。
// 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格式響應請求
開發(fā)api接口的時候,也有使用xml格式的響應,下面是返回xml格式數(shù)據(jù)的例子。
// 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 處理請求參數(shù)
*/
func main() {
// 一、實例化服務
r := gin.Default()
// 二、路由
// 1.直接返回string
// localhost:8080
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "hello world")
})
// 2.返回json 數(shù)據(jù)
// 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數(shù)據(jù)
// 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")
}
總結(jié)
到此這篇關于Go語言Gin處理響應方式的文章就介紹到這了,更多相關Go語言Gin處理響應內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
聊聊go xorm生成mysql的結(jié)構(gòu)體問題
這篇文章主要介紹了go xorm生成mysql的結(jié)構(gòu)體問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-03-03
GoLang并發(fā)機制探究goroutine原理詳細講解
goroutine是Go語言提供的語言級別的輕量級線程,在我們需要使用并發(fā)時,我們只需要通過 go 關鍵字來開啟 goroutine 即可。這篇文章主要介紹了GoLang并發(fā)機制goroutine原理,感興趣的可以了解一下2022-12-12
golang框架gin的日志處理和zap lumberjack日志使用方式
這篇文章主要介紹了golang框架gin的日志處理和zap lumberjack日志使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Golang使用反射的動態(tài)方法調(diào)用詳解
Go是一種靜態(tài)類型的語言,提供了大量的安全性和性能。這篇文章主要和大家介紹一下Golang使用反射的動態(tài)方法調(diào)用,感興趣的小伙伴可以了解一下2023-03-03

