Gin框架中获取接口执行结果:使用context.Set()和context.Get()
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}
代码解释:
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框架的不同路由或中间件之间传递数据,例如接口执行结果、用户信息等。
原文地址: http://www.cveoy.top/t/topic/fB9b 著作权归作者所有。请勿转载和采集!