gin框架

安装

go get -u github.com/gin-gonic/gin

代码

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"msg": "pong",
		})

	})
	r.Run(":8081")
}

使用get.post.put.等HTTP方法

func main() {
	r := gin.Default()
	r.POST("/xxxpost",add)
	r.PUT("/xxxput")
}
func add(c *gin.Context) {
	//c *gin.Context要传不然报错
}

路由分组

func main() {
	//路由分组
	router := gin.Default()
	v1 := router.Group("/v1")
	{
		v1.GET("/login", loginEndPoint)
		v1.GET("/submit", submitEndPoint)
	}
	v2 := router.Group("/v2")
	{
		v2.GET("login", loginEndPoint)
	}
	
	router.Run(":8082")
}

func loginEndPoint(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "login",
	})
}

http://localhost:8082/v1/login
在这里插入图片描述

带参数的url

func main() {
	//路由分组
	router := gin.Default()
	v1 := router.Group("/v1")
	{
		v1.GET("/login", loginEndPoint)
		v1.GET("/submit", submitEndPoint)
	}
	
	router.GET("/user/:name/:action/", func(c *gin.Context) {
		name := c.Param("name")
		action := c.Param("action")
		c.String(http.StatusOK, "%s is %s", name, action)

	})
	router.Run(":8082")
}

http://localhost:8082/user/zhangsan/jump/
在这里插入图片描述
如果是router.GET(“/user/:name/:action/”, func(c *gin.Context) {}),你在action后还加参数会找不到
在这里插入图片描述
但是如果是如果是router.GET(“/user/:name/:action/ff”, func(c *gin.Context) {}),地址栏就要带上这个action后的值,写ff就带ff,写abc就带abc,看你加了什么字符串
在这里插入图片描述
如果是如果是router.GET(“/user/:name/*action”, func(c *gin.Context) {}),name后的字符串全截取到

router.GET("/user/:name/*action", func(c *gin.Context) {
		name := c.Param("name")
		action := c.Param("action")
		c.String(http.StatusOK, "%s is %s", name, action)

	})

在这里插入图片描述

绑定url参数


在这里插入代码片func main() {
	type Params struct {
		Id   int    `uri:"id" binding:"required"`
		Name string `uri:"name" bindind:"required"`
	}
	r := gin.Default()
	r.GET("/user/:name/:id", func(c *gin.Context) {
		var Person Params
		var err = c.ShouldBindUri(&Person)
		if err != nil {
			c.JSON(200, gin.H{
				"err": err,
			})
			return
		}
		c.JSON(200, gin.H{
			"name": Person.Name,
			"id":   Person.Id,
		})

	})

	r.Run(":8082")
}

接收get参数

//localhost:8082/post?id=2&name=
//DefaultQuery传空值就显示空值而不是默认值,不传才显示默认值;DefaultPostForm传空值会显示默认值
id := c.DefaultQuery("id", "12")
name := c.Query("name")

接收post参数

age := c.PostForm("age")
pos := c.DefaultPostForm("pos", "老师")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值