在单个 R 代码中从设备获取多个 api 调用

Get multiple api calls from a device in a single R code

我目前正在从设备的 api 中检索一些数字数据。代码 运行 完全没有错误,但是现在我想在单个代码中从多个设备获取数据,即如果我没记错的话,多个 api 调用。由于有 50 台设备,因此调用次数超过 50 次。

我正在运行正在为一台设备编写以下代码:

    url <-"https://example.com/api/GetDataBynum?num=ABCDevice.device#.parameter"
    geturl <-httr::GET(url,add_headers(.headers=c('key'='')))
    apidetails1<-content(geturl,"text", encoding ="UTF-8")

#而这个用于第二个设备号等等效率低下

    url2 <-"https://example.com/api/GetDataBynum?num=ABCDevice.device#.parameter"
    geturl2 <-httr::GET(url2,add_headers(.headers=c('key'='')))
    apidetails2<-content(geturl2,"text", encoding ="UTF-8")

有什么方法可以在单个代码中 运行 多个 api 吗?

创建一个 url 的向量并在 lapply 中使用它:

library(httr)
url <- sprintf('https://example.com/api/GetDataBynum?num=ABCDevice.device%s.parameter', data$dataf)

lapply(urls, function(x) {
  geturl <- GET(x,add_headers(.headers=c('key'='')))  
  content(geturl,"text", encoding ="UTF-8")
}) -> result

如果你想将数据合并到一个数据框中,你可以result <- do.call(rbind, result)