gin框架中多种数据格式返回请求结果


返回四种格式的数据:1. []byte、string  2. json格式  3. html模板渲染  4. 静态资源设置

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	router := gin.Default()

	// []byte类型格式的数据返回
	router.GET("/hello", HandlerHello)
	// 字符串格式的数据返回
	router.GET("/string", HandlerString)
	// 将map类型的数据转换成json格式
	router.POST("/json_map", HandlerJsonMap)
	// 将结构体类型的数据转换成json格式
	router.GET("/json_struct", HandlerJsonStruct)

	// 设置html目录
	router.LoadHTMLGlob("./templates/*")
	// 返回Html
	router.GET("/html", HandlerHtml)

	// 设置静态文件目录
	// 				relativePath: 前端请求的路径,		root: 本地工程的路径
	router.Static("/static/images", "./static/images")

	router.Run(":8000")
}
func HandlerHtml(ctx *gin.Context) {
	ctx.HTML(http.StatusOK, "index.html", gin.H{
		"fullPath": ctx.FullPath(),
		"title": "官方教程v2",
	})
}
type Response struct {
	Code int `json:"code"`
	Message string `json:"message"`
	Data interface{} `json:"data"`
}
func HandlerJsonStruct(ctx *gin.Context) {
	var sj = Response{Code: 1, Message: "OK", Data: ctx.FullPath()}
	ctx.JSON(http.StatusOK, &sj)
}
func HandlerJsonMap(ctx *gin.Context) {
	ctx.JSON(http.StatusOK, gin.H{
		"name": "老王",
		"age": 55,
	})
}
func HandlerString(ctx *gin.Context) {
	ctx.Writer.WriteString(ctx.FullPath())
}
func HandlerHello(ctx *gin.Context) {
	ctx.Writer.Write([]byte("hello byte"))
}
gin