HTTR предупреждение, когда в желаемом ответе нет данных - PullRequest
0 голосов
/ 05 марта 2020

Я создаю оболочку 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. Там должен быть лучший способ.

...