Параметры функции Web.Contents()

Функция Web.Contents() используется для получения данных из Интернета, чаще всего её используют для запросов к REST API различных сервисов.

Функция имеет ряд параметров и… скудную официальную документацию.
Поэтому некоторые аспекты использования Web.Contents() иногда вызывают вопросы.

Get-запросы.

Допустим, нам необходимо сделать запрос вида

http://API-Resurse.com/chapter?postId=1&page=25

В принципе можно не усложнять задачу и написать запрос вида:

let
Source= Web.Contents("http://API-Resurse.com/chapter?postId=1&page=25")
in
Source

Но использование дополнительных параметров может облегчить читаемость кода и иногда помочь устранить ошибки при обновлении отчёта в облаке.

Предыдущий запрос с дополнительными параметрами:

let
Source= Web.Contents("http://API-Resurse.com",
[RelativePath="chapter",  
Query=[postId="1", page="25"]])
in
Source

Дополнительные параметры точно необходимы, если их значения динамические, то есть подставляются из переменных. При указании только url с использованием динамических параметров гарантированно будут проблемы с обновлением отчёта в облаке.

При необходимости можно добавить в запрос заголовок:

let
Source= Web.Contents("http://API-Resurse.com",
[RelativePath="chapter",  
Query=[postId="1", page="25"],
Headers = [#"Authorization"="ApiKey",#"Content-Type"="application/json"]])
in
Source

Немного лайфхаков.

Если в запросе требуется передать один и тот же параметр, но с разными значениями:

http://API-Resurse.com/chapter?postId=1&postId=2

Запрос должен выглядеть так:

Web.Contents("http://API-Resurse.com/chapter",[Query=[postId={"1","2"}]])

Если нужно подменить базовый адрес, по которому происходит проверка авторизации в облаке, и может не работать обновление:

Web.Contents( "http://API-Resurse.com/chapter?part=status", [Query=[part="datablock"]])

В этом случае проверка авторизации в облаке будет осуществляться по адресу:

http://API-Resurse.com/chapter?part=status

А запрос данных будет осуществляться с адреса:

http://API-Resurse.com/chapter?part=datablock

Статья подготовлена по материалам Интернета

(Visited 295 times, 1 visits today)