Создание URL с параметрами запроса через запятую, используя httr - PullRequest
0 голосов
/ 06 февраля 2020

Я создаю оболочку API, в которой я использую httr для основной массы работы. URL для API использует запятые, чтобы разделить более одного варианта для параметра запроса.

Мой текущий код использует glue::glue и stringr, чтобы привести вектор в порядок для построения URL. Есть ли способ использовать httr для создания URL, включая запятые в команде httr::GET?

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

idPlayerMLB <- c("677551", "650402")
hydrate <- c("awards", "currentTeam")

# MLB API is https://statsapi.mlb.com/api/v1/people/
base_url <- "https://statsapi.mlb.com/api/v1/people?"

# fix id to string
ids <- stringr::str_c(idPlayerMLB, collapse = ",")
hydrations <- stringr::str_c(hydrate, collapse = ",")

url <- glue::glue("{base_url}personIds={ids}&hydrate={hydrations}") %>% as.character()

url
#> [1] "https://statsapi.mlb.com/api/v1/people?personIds=677551,650402&hydrate=awards,currentTeam"

# Get URL
resp <- httr::GET(base_url,
  query = list(
    personIds = stringr::str_c(idPlayerMLB, collapse = ","),
    hydrate = stringr::str_c(hydrate, collapse = ",")
  )
)

# print URL
resp$url
#> [1] "https://statsapi.mlb.com/api/v1/people?personIds=677551%2C650402&hydrate=awards%2CcurrentTeam"

Создано в 2020-02-06 пакетом Представить (v0.3.0)

...