前言

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")
}

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐