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!

推薦閱讀: