gin框架 响应的数据格式

gin框架 可以提供多种数据格式的响应,包括json、结构体、XML、YAML 以及 ProtoBuf等格式。

package main

import (
    "github.com/gin-gonic/gin"
    "github.com/gin-gonic/gin/testdata/protoexample"
)

// 多种响应方式
func main() {
    // 创建路由
    engine := engine.Default()
    
    // 1. 返回json
    engine.GET("/someJSON", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "someJSON", "status": 200})
    })
    // 2. 结构体响应
    engine.GET("/someStruct", func(c *gin.Context) {
        var msg struct {
            Name    string
            Message string
            Number  int
        }
        msg.Name = "root"
        msg.Message = "message"
        msg.Number = 123
        c.JSON(200, msg)
    })

    // 3.XML
    engine.GET("/someXML", func(c *gin.Context) {
        c.XML(200, gin.H{"message": "abc"})
    })

    // 4.YAML响应
    engine.GET("/someYAML", func(c *gin.Context) {
        c.YAML(200, gin.H{"name": "zhangsan"})
    })

    // 5.protobuf格式,谷歌开发的高效存储读取的工具
    engine.GET("/someProtoBuf", func(c *gin.Context) {
        reps := []int64{int64(1), int64(2)}
        // 定义数据
        label := "label"
        // 传protobuf格式数据
        data := &protoexample.Test{
            Label: &label,
            Reps:  reps,
        }
        c.ProtoBuf(200, data)
    })

    engine.Run()
}

gin框架 HTML模板渲染:gin 支持加载 HTML 模板, 然后根据模板参数进行配置并返回相应的数据,本质上就是字符串替换 LoadHTMLGlob() 方法可以加载模板文件。本章介绍:正常模式 HTML 模板渲染、多层目录 HTML 模板渲染、头尾分离模式 HTML 模板渲染。