Gin学习笔记--多数据格式返回请求结果

一个完整的请求包含请求,处理请求和结果返回三个步骤,在服务器端对请求处理完成后,会将结果返回给前端。

1.[]byte

通过context.Writer.Write方法写入[]byte数据。Writer是gin框架封装的一个ResponseWriter接口类型。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
)

func main() {
    engine := gin.Default()
    engine.GET("/helloByte", func(ctx *gin.Context) {
        fmt.Println(ctx.FullPath())
        ctx.Writer.Write([]byte(ctx.FullPath()))
    })
    engine.Run()
}

 String:engine.GET("/helloString", func(ctx *gin.Context) {

        fullPath := ctx.FullPath()
        ctx.Writer.WriteString(fullPath)
    })

JSON:

除了使用context.Writer对象返回[]byte和String类型的数据外,gin框架支持将返回数据组装成json格式进行返回。

gin框架中的context包含的JSON方法可以将结构体类型的数据转换成JSON格式的结构化数据,然后返回给客户端。

map类型与结构体类型

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
)

func main() {
    engine := gin.Default()
    //map类型数据转换
    engine.GET("/helloJson", func(ctx *gin.Context) {
        fullPath := "请求路径:" + ctx.FullPath()
        fmt.Println(fullPath)
        ctx.JSON(200, map[string]interface{}{
            "code":    1,
            "message": "请求成功",
            "data":    fullPath,
        })
    })
    //结构体类型数据转换
    engine.GET("/jsonStruct", func(ctx *gin.Context) {
        fullPath := "请求路径:" + ctx.FullPath()
        fmt.Println(fullPath)
        response := Response{Code: 2, Message: "请求失败", Data: fullPath}
        ctx.JSON(200, &response)

    })
    engine.Run(":9000")
}

type Response struct {
    Code    int
    Message string
    Data    interface{}
}

Html

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

func main() {
    engine := gin.Default()
    engine.LoadHTMLGlob("./GinRespFormat/html/*")
    //map类型数据转换
    engine.GET("/helloJson", func(ctx *gin.Context) {
        fullPath := "请求路径:" + ctx.FullPath()
        fmt.Println(fullPath)
        ctx.HTML(http.StatusOK, "index.html", gin.H{
            "fullPath": fullPath,
            "title":    "gin教程",
        })

    })
    engine.Run()
}

 

 

posted @ 2023-03-11 14:25  99号的格调  阅读(222)  评论(0编辑  收藏  举报