golang学习之gin--第③篇:设置路由 获取get/post请求参数

本文详细介绍了Gin框架的使用,包括GET和POST请求的实现、路由分组、GET路由参数的获取以及POST请求的处理。通过示例代码展示了如何创建路由、读取URL参数和表单数据,帮助读者更好地理解和应用Gin进行Web开发。
摘要由CSDN通过智能技术生成


前言

gin 框架中采用的路由库是基于httprouter做的

一、请求方式及写法

gin支持Restful风格的API请求方式有:ANY、GET、POST、PUT、PATCH 和 DELETE 请求

1.get/post路由写法

代码如下(示例):

package main

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

func main() {
	e := gin.Default()
	// get请求
	e.GET("/get", func(context *gin.Context) {
		context.String(http.StatusOK, "当前使用get请求")
	})
	// post请求
	e.POST("/post", func(context *gin.Context) {
		context.String(http.StatusOK, "当前使用post请求")
	})
	// 运行
	e.Run(":8080")
}

2.运行结果

使用get请求get方法(示例):
在这里插入图片描述
使用post请求post方法(示例):
在这里插入图片描述

二、路由分组

1.routes group是为了管理一些相同的URL

代码如下(示例):

package main

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

func main() {
	e := gin.Default()

	// 路由分组 v1:分组名称
	v1 := e.Group("v1")
	{
		v1.GET("/get1", func(context *gin.Context) {
			context.String(http.StatusOK, "get1")
		})
		v1.GET("/get2", func(context *gin.Context) {
			context.String(http.StatusOK, "get2")
		})
	}
	// 运行
	e.Run(":8080")
}

结果。注意路由:
在这里插入图片描述
在这里插入图片描述

三、get路由参数

url参数可以通过DefaultQuery()Query()方法获取
DefaultQuery()若参数不村则,返回默认值
Query()若不存在,返回空串
如:API ? name=zs

代码如下(示例):

package main

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

func main() {
	e := gin.Default()
	// get请求
	e.GET("/get", func(context *gin.Context) {
		// 指定默认值
		name := context.DefaultQuery("name", "无参数")

		context.String(http.StatusOK, "参数name:"+name)
	})
	// 运行
	e.Run(":8080")
}

结果。注意路由:
在这里插入图片描述
在这里插入图片描述

四、post路由实例

1.post请求,http常见的传输格式为四种:

application/json
application/x-www-form-urlencoded
application/xml
multipart/form-data

  • 表单参数可以通过PostForm()方法获取,该方法默认解析的是x-www-form-urlencodedfrom-data格式的参数

代码如下(示例):

package main

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

func main() {
	e := gin.Default()
	// get请求
	e.POST("/post", func(context *gin.Context) {
		name := context.PostForm("name")
		// 指定默认值
		pwd := context.DefaultPostForm("pwd", "123")

		context.String(http.StatusOK, "name:"+name+",pwd:"+pwd)
	})
	// 运行
	e.Run(":8080")
}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值