在单个 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)
。
我目前正在从设备的 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)
。