当前位置: 首页 > article >正文

Gin 学习笔记01-数据返回

Gin 数据返回

  • 1、返回 string 和 json
  • 2、返回 xml 和 ymal
  • 3、返回html
  • 4、重定向

1、返回 string 和 json

  • c.String()
  • c.JSON()
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()
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()
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()
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")
}


http://www.kler.cn/a/144714.html

相关文章:

  • 【从浅识到熟知Linux】基本指定之zip、unzip和tar
  • 芯能科技-603105 三季报分析(20231123)
  • 【Linux】指令详解(三)
  • AtCoder Beginner Contest 330 题解
  • 对全概率公式、贝叶斯公式的理解
  • 界面组件DevExpress Reporting v23.1 - Web报表设计器功能升级
  • 一文带你深入理解MySQL的三大连接方式:左连接、右连接和内连接!
  • c 语言中 unsigned int 类型的负数实际值大小
  • YOLOv8改进 | 2023 | FocusedLinearAttention实现有效涨点
  • vatee万腾科技先锋之选:vatee创新力驱动着未来发展
  • 无需公网IP,使用MCSM面板一键搭建我的世界Minecraft服务器联机游戏
  • 前端大厂(腾讯、字节跳动、阿里......)校招面试真题解析,让你面试轻松无压力!
  • 如何通过 Al 的能力提升编程的效率?
  • Redis压缩列表
  • TIDB拓扑结构
  • 【数据结构实验】排序(三)快速排序算法的改进(三者取中法)
  • 理解CLIP模型
  • 腾讯云CVM标准型SA5云服务器AMD EPYC Bergamo处理器
  • 链表?细!详细知识点总结!
  • 递归方法来计算二叉树的双分支节点个数