码迷,mamicode.com
首页 > 其他好文 > 详细

Gin_响应

时间:2020-03-09 09:12:41      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:class   ext   href   int   mep   not   bec   import   注意   

既然请求可以使用不同的content-type,响应也如此。通常响应会有html,text,plain,json和xml等。 gin提供了很优雅的渲染方法。

1. JSON/XML/YAML渲染

package main

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

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

	// gin.H is a shortcut for map[string]interface{}
	r.GET("/someJSON", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{"message": "hey", "status": http.StatusOK})
	})

	r.GET("/moreJSON", func(c *gin.Context) {
		// You also can use a struct
		var msg struct {
			Name    string `json:"user"`
			Message string
			Number  int
		}
		msg.Name = "hanru"
		msg.Message = "hey"
		msg.Number = 123
		// 注意 msg.Name 变成了 "user" 字段
		// 以下方式都会输出 :   {"user": "hanru", "Message": "hey", "Number": 123}
		c.JSON(http.StatusOK, msg)
	})

	r.GET("/someXML", func(c *gin.Context) {
		c.XML(http.StatusOK, gin.H{"user":"hanru","message": "hey", "status": http.StatusOK})
	})

	r.GET("/someYAML", func(c *gin.Context) {
		c.YAML(http.StatusOK, gin.H{"message": "hey", "status": http.StatusOK})
	})

	r.GET("/someProtoBuf", func(c *gin.Context) {
		reps := []int64{int64(1), int64(2)}
		label := "test"
		// The specific definition of protobuf is written in the testdata/protoexample file.
		data := &protoexample.Test{
			Label: &label,
			Reps:  reps,
		}
		// Note that data becomes binary data in the response
		// Will output protoexample.Test protobuf serialized data
		c.ProtoBuf(http.StatusOK, data)
	})

	// Listen and serve on 0.0.0.0:8080
	r.Run(":8080")
}

1.1 JSON

技术图片

技术图片

1.2 XML

技术图片

1.3 YAML

技术图片

2. HTML模板渲染

https://www.liwenzhou.com/posts/Go/go_template/

2.1 传结构体

技术图片

技术图片

技术图片

 

2.2 传map

技术图片

 

技术图片

 

2.3 传两个

技术图片

 

技术图片

 

2.4 过滤

技术图片

2.5 if

技术图片

 

2.6 range

技术图片

 

技术图片

 

2.7 with

技术图片

 

2.7 自定义函数

技术图片

 

技术图片

 

2.8 模板嵌套

技术图片

技术图片

技术图片

 

2.9 模板继承

 

Gin_响应

标签:class   ext   href   int   mep   not   bec   import   注意   

原文地址:https://www.cnblogs.com/yzg-14/p/12446275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!