golang 如何从ginContext中获取接口执行完成后结果
在Gin框架中,可以使用context.Set()方法将接口执行完成后的结果存储到gin.Context中,然后使用context.Get()方法从gin.Context中获取结果。
下面是一个示例代码:
package 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
}
在上面的示例中,当访问 /api/:id 路由时,会执行 fetchData() 方法获取结果,并将结果存储到 gin.Context 中。然后,当访问 /api/result 路由时,会从 gin.Context 中获取结果,并返回给客户端。
原文地址: https://www.cveoy.top/t/topic/hUSl 著作权归作者所有。请勿转载和采集!