json - 将 API 请求函数传递给另一个函数 GoLang

标签 json go

背景-

我正在将此函数移动到 main(),以便我的其余代码可以访问响应数据。

例子-

func RequestTopMovies(w http.ResponseWriter, r *http.Request) {
  res, err := http.Get(url)
      if err != nil {
        panic(err)
      }
      defer res.Body.Close()

      body, err := ioutil.ReadAll(res.Body)
      if err != nil {
        panic(err)
      }
      var p Payload

      err = json.Unmarshal(body, &p)
      if err != nil {
        panic(err)
      }
      for i := 0; i < len(p.Results); i++ {
       fmt.Println(p.Results[i].Overview) 
    }
}

问题 -

如何将响应数据设置为可供我代码中的其他位置访问?

最佳答案

RequestTopMovies 是一种 http.Handler 类型,它将作为处理函数(也称为 Controller )自动调用。

要访问接收到的数据,要么使用上下文之类的东西(检查 gorilla /上下文),要么只创建一个 slice 或映射来保存数据结构,以便您可以从代码中的其他地方访问它,即

var Temp = map[string]Payload{}

一旦你解码了数据,就把它存储起来<​​/p>

Temp[key] = p

然后像另一个处理程序一样从其他地方获取数据

func SomeHandler(rw http.ResponseWriter, *http.Request) {
        p := Temp[key]
        // ...
} 

关于json - 将 API 请求函数传递给另一个函数 GoLang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970960/

相关文章:

javascript - console.log 如何格式化 Json 对象有一个名称吗?

jquery - 使用JSONP跨域ajax请求json文件

java - 有条件地将元素渲染为链接以在 Java 中实现 HAL

go - 我如何在文件开头的 golang 中删除 

xml - 遍历 XML

mysql - 如何在 Revel Controller 中访问 Gorm?

javascript - 将动态 JSON 数据嵌套到 Extjs 模型

javascript - 如何从日期时间json中提取日期?

go - 将 slice 解包到结构值

go - 尝试提供 Gin Gonic 应用程序时出现紧急错误