Gin 数据返回
1、返回 string 和 json
- c.String()
- c.JSON()
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func getJSON(c *gin.Context) {
//c.String(http.StatusOK, "小明")
//c.JSON(http.StatusOK, gin.H{"name": "小明", "age": 18})
//type User struct {
// Name string
// Age int
//}
// 自定义返回的字段名成
//type User struct {
// Name string `json:"name"`
// Age int `json:"age"`
//}
// 如果不想让某个字段返回可以使用 "-"
type User struct {
Name string `json:"name"`
Age int `json:"age"`
Password string `json:"-"`
}
user := User{"小明", 18, "123123"}
c.JSON(http.StatusOK, user)
}
func main() {
router := gin.Default()
router.GET("/getJSON", getJSON)
router.Run(":9000")
}
2、返回 xml 和 ymal
- c.XML()
- c.YAML()
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func getXML(c *gin.Context) {
c.XML(http.StatusOK, gin.H{"name": "小明", "age": 18})
}
func getYAML(c *gin.Context) {
c.YAML(http.StatusOK, gin.H{"name": "小明", "age": 18})
}
func main() {
router := gin.Default()
router.GET("/getXML", getXML)
router.GET("/getYAML", getYAML)
router.Run(":9000")
}
3、返回html
- router.LoadHTMLGlob()
- router.StaticFS()
- router.StaticFs()
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func getHtml(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{"name": "小明"})
}
func main() {
router := gin.Default()
// 全局加载
router.LoadHTMLGlob("template/*")
// 加载目录
router.StaticFS("/static", http.Dir("static/static"))
// 加载静态文件
router.StaticFile("/login.jpg", "static/login.jpg")
router.GET("/getHtml", getHtml)
router.Run(":9000")
}
4、重定向
- c.Redirect()
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func direct(c *gin.Context) {
c.Redirect(http.StatusMovedPermanently, "http://www.baidu.com")
}
func main() {
router := gin.Default()
router.GET("/redirect", direct)
router.Run(":9000")
}