Loading

go_test1

package main

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

type Article struct {
	Id    int    `json:"id"`
	Title string `json:"title"`
}

func main() {
	// 定义路由
	r := gin.Default()

	// 返回字符串
	r.GET("/", func(context *gin.Context) {
		context.String(200, "内容:%v", "你好gin")
	})

	// 返回json
	r.GET("/json", func(context *gin.Context) {
		context.JSON(200, map[string]interface{}{
			"姓名": "张艺卓",
			"电话": "12345678910",
		})
	})

	// 返回json
	r.GET("/json2", func(context *gin.Context) {
		// type H map[string]any, any是interface{}的缩写
		context.JSON(200, gin.H{
			"姓名": "孟子恒",
			"电话": "12345678910",
		})
	})

	// 返回结构体
	r.GET("/json3", func(context *gin.Context) {
		// 大写才能被包外访问
		var a = &Article{
			Id:    1,
			Title: "斗罗大陆",
		}
		context.JSON(200, a)
	})

	// jsonp,可给params传入callback回调函数,用于处理跨域请求
	// http://localhost:8080/jsonp?callback=xxx
	r.GET("/jsonp", func(context *gin.Context) {
		// 大写才能被包外访问
		var a = &Article{
			Id:    1,
			Title: "斗罗大陆-jsonp",
		}
		context.JSONP(200, a)
	})

	// xml
	r.GET("/xml", func(context *gin.Context) {
		//context.XML(http.StatusOK, map[string]interface{}{ // 不知道为啥不显示
		//	"isTrue":  true,
		//	"content": "我是xml",
		//})
		context.XML(http.StatusOK, gin.H{ // 显示ok
			"isTrue":  true,
			"content": "我是xml",
		})
	})

	// html
	r.LoadHTMLGlob("templates/*") // 配置模板路径
	r.GET("/html", func(context *gin.Context) {
		context.HTML(200, "index.html", gin.H{
			"name":    "张艺卓",
			"mobile ": "12345678910",
		})
	})

	r.Run()
}

posted @ 2024-10-25 15:28  一只大学生  阅读(3)  评论(0编辑  收藏  举报