1. JSON
g.POST("/login", func(ctx *gin.Context) {
var user User
if err := ctx.BindJSON(&user); err != nil {
// 返回 JSON 格式数据
ctx.JSON(http.StatusBadRequest, gin.H{
"error": err.Error(),
})
return
}
// 将结构体转换成 JSON 格式返回
ctx.JSON(http.StatusOK, user)
})
2. XML
g.GET("/xml", func(ctx *gin.Context) {
// 返回 XML 格式数据
ctx.XML(http.StatusOK, gin.H{
"msg": "This is a XML message.",
})
})
3. YAML
g.GET("/yaml", func(ctx *gin.Context) {
// 返回 YAML 格式数据
ctx.YAML(http.StatusOK, gin.H{
"msg": "This is a YAML message.",
})
})
4. ProtoBuf
g.GET("/yaml", func(ctx *gin.Context) {
// 返回 ProtoBuf 格式数据
ctx.ProtoBuf(http.StatusOK, gin.H{
"msg": "This is a ProtoBuf message.",
})
})