TG Telegram Group & Channel
R4marketing | канал Алексея Селезнёва | Язык R | United States America (US)
Create: Update:

​​Недавно случайно наткнулся на httr2, т.е. Хедли работает над новым интерфейсом для взаимодействия с различными API.

Установить httr2 пока можно только с GitHub: devtools::install_github("r-lib/httr2")

Ключевые отличия httr2 от предшественника httr:

● Теперь вы можете создавать и изменять запрос, не выполняя его. Это означает, что теперь есть одна функция для выполнения запроса и получения результата: req_perform(). (Если вы хотите обрабатывать ответ по мере его поступления, используйте вместо этого req_stream()). req_perform() заменяет httr::GET(), httr::POST(), httr::DELETE() и т.д.

● Ошибки HTTP автоматически преобразуются в ошибки R. Используйте req_error(), чтобы переопределить значения по умолчанию (которые превращают все ответы 4xx и 5xx в ошибки) или добавить дополнительные сведения в сообщение об ошибке.

● Вы можете автоматически повторить попытку, если запрос завершится неудачно или возникнет временная ошибка HTTP (например, запрос столкнулся с каким то лимитом, код ошибки 429). req_retry() определяет максимальное количество повторных попыток, какие статусы ответа являются временными и задавать паузу между попытками отправки запросов.

● Поддержка OAuth была полностью переработана, чтобы напрямую поддерживать гораздо больше потоков и упростить как настройку встроенных потоков, так и создание собственных.

● Улучшена работа с секретными данными, для этого используйте функции семейства secret_*().

● Вы можете автоматически кэшировать все кешируемые результаты с помощью req_cache().

Сам синтаксис нового httr2 стал более читабельным, ниже приведу описание основных функций:

Компоновка запроса
- request() - создание запроса
- req_headers() - добавить заголовки
- req_url_query() - добавить параметры
- req_method() - изменить метод запроса, по умолчанию GET
- req_body_*() - создания тела запроса
- req_perform() - отправка запроса
- req_dry_run() - предпросмотрт запроса, перед отправкой на сервер
- req_retry() - позволяет задать условия выполнения повторного запроса, в случае ошибки

● Извлечение компонентов ответа
- resp_body_*() - извлечь тело ответа
- resp_status() - извлечь код статуса
- resp_status_desc() - извлечь описание кода статуса
- resp_headers() - извлечь заголовки ответа
- resp_content_type() - узнать формат данных полученного ответа

Ниже приведу небольшой пример кода с использованием httr2.

# install.packages("devtools")
# devtools::install_github("r-lib/httr2")

library(httr2)

request('http://httpbin.org/post') %>%
req_method("POST") %>%
req_body_json(list(a = 1, b = 2, c = 3)) %>%
req_headers(Name = "Alexey") %>%
req_perform() %>%
resp_body_json()

Ссылки:
- README на GitHub

#заметки_по_R

​​Недавно случайно наткнулся на httr2, т.е. Хедли работает над новым интерфейсом для взаимодействия с различными API.

Установить httr2 пока можно только с GitHub: devtools::install_github("r-lib/httr2")

Ключевые отличия httr2 от предшественника httr:

● Теперь вы можете создавать и изменять запрос, не выполняя его. Это означает, что теперь есть одна функция для выполнения запроса и получения результата: req_perform(). (Если вы хотите обрабатывать ответ по мере его поступления, используйте вместо этого req_stream()). req_perform() заменяет httr::GET(), httr::POST(), httr::DELETE() и т.д.

● Ошибки HTTP автоматически преобразуются в ошибки R. Используйте req_error(), чтобы переопределить значения по умолчанию (которые превращают все ответы 4xx и 5xx в ошибки) или добавить дополнительные сведения в сообщение об ошибке.

● Вы можете автоматически повторить попытку, если запрос завершится неудачно или возникнет временная ошибка HTTP (например, запрос столкнулся с каким то лимитом, код ошибки 429). req_retry() определяет максимальное количество повторных попыток, какие статусы ответа являются временными и задавать паузу между попытками отправки запросов.

● Поддержка OAuth была полностью переработана, чтобы напрямую поддерживать гораздо больше потоков и упростить как настройку встроенных потоков, так и создание собственных.

● Улучшена работа с секретными данными, для этого используйте функции семейства secret_*().

● Вы можете автоматически кэшировать все кешируемые результаты с помощью req_cache().

Сам синтаксис нового httr2 стал более читабельным, ниже приведу описание основных функций:

Компоновка запроса
- request() - создание запроса
- req_headers() - добавить заголовки
- req_url_query() - добавить параметры
- req_method() - изменить метод запроса, по умолчанию GET
- req_body_*() - создания тела запроса
- req_perform() - отправка запроса
- req_dry_run() - предпросмотрт запроса, перед отправкой на сервер
- req_retry() - позволяет задать условия выполнения повторного запроса, в случае ошибки

● Извлечение компонентов ответа
- resp_body_*() - извлечь тело ответа
- resp_status() - извлечь код статуса
- resp_status_desc() - извлечь описание кода статуса
- resp_headers() - извлечь заголовки ответа
- resp_content_type() - узнать формат данных полученного ответа

Ниже приведу небольшой пример кода с использованием httr2.

# install.packages("devtools")
# devtools::install_github("r-lib/httr2")

library(httr2)

request('http://httpbin.org/post') %>%
req_method("POST") %>%
req_body_json(list(a = 1, b = 2, c = 3)) %>%
req_headers(Name = "Alexey") %>%
req_perform() %>%
resp_body_json()

Ссылки:
- README на GitHub

#заметки_по_R


>>Click here to continue<<

R4marketing | канал Алексея Селезнёва | Язык R






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)