Я создаю оболочку API, используя httr
. Используемый мной API не имеет контента в пределах people
за текущий год, но возвращает данные об авторских правах. Когда я использую httr::GET
, я все равно получаю код состояния 200, так как есть ответ.
Ответ должен содержать данные, аналогичные 2019. Как использовать httr
, чтобы выдать ошибку? Имеется ли предупреждение, подобное httr::warn_for_status
, доступное?
Пример запроса, который работает и возвращает людей, и запроса, который не
library(httr)
data <- GET("https://statsapi.mlb.com/api/v1/sports/1/players?season=2019")
# response with data in content. I'll spare everyone the 1,410 rows in the JSON Response
str(content(data, type= "application/json"), list.len = 2)
#> List of 2
#> $ copyright: chr "Copyright 2020 MLB Advanced Media, L.P. Use of any content on this page acknowledges agreement to the terms po"| __truncated__
#> $ people :List of 1410
#> ..$ :List of 36
#> .. ..$ id : int 472551
#> .. ..$ fullName : chr "Fernando Abad"
#> .. .. [list output truncated]
#> ..$ :List of 35
#> .. ..$ id : int 650556
#> .. ..$ fullName : chr "Bryan Abreu"
#> .. .. [list output truncated]
#> .. [list output truncated]
no_data <- GET("https://statsapi.mlb.com/api/v1/sports/1/players?season=2020")
str(content(no_data, type= "application/json"))
#> List of 2
#> $ copyright: chr "Copyright 2020 MLB Advanced Media, L.P. Use of any content on this page acknowledges agreement to the terms po"| __truncated__
#> $ people : list()
Альтернатива, которую я использовал, заключается в проанализируйте данные и затем используйте nrow(df) < 1
. Там должен быть лучший способ.