• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Golang Gin 框架入门二

武飞扬头像
liuzhen007
帮助2

目录

  • 前言
  • 正文
    • 一、定义 GET, POST, PUT, PATCH, DELETE 和 OPTIONS 的接口
    • 二、解析 path 中的参数
  • 结尾

前言

正文

一、定义 GET, POST, PUT, PATCH, DELETE 和 OPTIONS 的接口

package main

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

func main() {
	// 创建一个默认的 gin 路由器
	router := gin.Default()

        // 定义一个Get类型的服务接口
	router.GET("/someGet", getting)
        // 定义一个Post类型的服务接口
	router.POST("/somePost", posting)
        // 定义一个Put类型的服务接口
	router.PUT("/somePut", putting)
        // 定义一个DELETE类型的服务接口
	router.DELETE("/someDelete", deleting)
        // 定义一个Patch类型的服务接口
	router.PATCH("/somePatch", patching)
        // 定义一个Head类型的服务接口
	router.HEAD("/someHead", head)
        // 定义一个Options类型的服务接口
	router.OPTIONS("/someOptions", options)

        // 启动服务,默认监听8080端口,或者通过PORT环境变量设置
	router.Run()
}

通过简单的编码,基于 Gin 的服务器就支持了多种类型请求的服务接口。另外,在服务启动的时候,我们也可以通过直接指明端口的方式来设置服务监听的端口,比如下面的方式:

router.Run(":3001")

上面的语句,我们可以知道服务监听了 3001 端口。

二、解析 path 中的参数

下面介绍几种 path 中存在参数时,如何解析的情况,具体请看下面的代码示例。

package main

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

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

	// 可以匹配 /user/john,但是不能匹配 /user/ 和 /user 请求
	router.GET("/user/:name", func(c *gin.Context) {
		name := c.Param("name")
		c.String(http.StatusOK, "Hello %s", name)
	})

	// 可以匹配 /user/john/ 和 /user/john/send
	router.GET("/user/:name/*action", func(c *gin.Context) {
		name := c.Param("name")
		action := c.Param("action")
		message := name   " is "   action
		c.String(http.StatusOK, message)
	})

	// 对于每个匹配的请求,上下文将保存路由定义
	router.POST("/user/:name/*action", func(c *gin.Context) {
		c.FullPath() == "/user/:name/*action" // true
	})

	router.Run(":8080")
}

可以看出,解析 path 中的参数时需要注意的细节还是非常多的。

结尾

好了,今天关于 Gin 在接口定义和参数解析方面的内容就介绍完了,后续内容敬请期待,感谢!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhbebjeb
系列文章
更多 icon
同类精品
更多 icon
继续加载