Gin框架中获取接口执行结果:使用context.Set()context.Get()

在Gin框架中,可以使用context.Set()方法将接口执行完成后的结果存储到gin.Context中,然后使用context.Get()方法从gin.Context中获取结果,方便在不同路由或中间件之间共享数据。

以下是一个示例代码:gopackage main

import ( 'github.com/gin-gonic/gin')

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

r.GET('/api/:id', func(c *gin.Context) {		// 获取参数		id := c.Param('id')

	// 执行接口逻辑		result := fetchData(id)

	// 将结果存储到 gin.Context 中		c.Set('result', result)

	// 继续处理其他逻辑		// ...	})

r.GET('/api/result', func(c *gin.Context) {		// 从 gin.Context 中获取结果		result, exists := c.Get('result')		if !exists {			c.JSON(404, gin.H{'error': 'result not found'})			return		}

	// 处理结果		c.JSON(200, gin.H{'result': result})	})

r.Run(':8080')}

func fetchData(id string) string { // 模拟接口逻辑 return 'result for ' + id}

代码解释:

  1. c.Set('result', result):/api/:id路由处理函数中,fetchData(id)执行完成后,调用c.Set()将结果存储在gin.Context中,键名为'result'。2. c.Get('result'):/api/result路由处理函数中,调用c.Get()尝试获取键名为'result'的值。3. 错误处理: 如果c.Get()没有找到对应的键值,exists变量将为false,此时返回404错误。

总结:

使用context.Set()context.Get()可以方便地在Gin框架的不同路由或中间件之间传递数据,例如接口执行结果、用户信息等。

Gin框架中获取接口执行结果:使用context.Set()和context.Get()

原文地址: http://www.cveoy.top/t/topic/fB9b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录