HTTP-команды

HTTP-команды

Все продукты SaveToDB поддерживают URL в меню действий и контекстном меню.

Все версии надстройки SaveToDB позволяют получать веб-данные в таблицы Excel.

SaveToDB 10 поддерживает веб-запросы и сложные HTTP-команды во всех таблицах конфигурации. Вы можете получать данные с помощью запросов POST, сохранять изменения, получать списки значений и так далее.

Параметры URL

Этот раздел демонстрирует использование параметров в URL.

Например, URL может содержать тикер в сегменте:

https://some-service/APPL

Вы можете задать параметр и значение по умолчанию в фигурных скобках:

https://some-service/{Symbol=APPL}

Ниже приведён пример использования стандартного параметра "s":

https://some-service?s=APPL

Надстройка SaveToDB помещает такие параметры на ленту.

Вы можете изменить имя параметра и задать значение по умолчанию в фигурных скобках:

https://some-service?s={Symbol=APPL}

Если нужно отключить изменение параметров на ленте, добавьте {} в конце URL:

https://some-service?s=APPL{}

Параметры парсера

Надстройка SaveToDB автоматически извлекает данные из JSON, XML, HTML, CSV и плоского текста.

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

Добавляйте параметры парсера после URL, разделяя их точкой с запятой. Разделяйте значения параметра запятыми.

Например:

https://query1.finance.yahoo.com/v7/finance/options/{Symbol=AAPL};pages=50;rootpath=*.*.*.calls,*.*.*.puts

https://www.zohoapis.com/crm/v2/settings/fields?module={module=Accounts};RootPath=fields;ApiResult=true

Поддерживаемые параметры парсера

ПараметрTypeЗначение
AddRowNumBooleanДобавить колонку _RowNum.
ApiResultBooleanИспользовать специальный парсер для результатов JSON REST API.
AsIsBooleanВыводить данные в JSON из Yahoo Finance и MSN Money без специальных преобразований.
CapitalLetterBooleanПреобразовывать первый символ наименования в верхний регистр (только JSON).
CollapsedNodesStringВключать заданные узлы XML в колонки родителя.
FirstRowIntegerУстановить первую строку исходных данных для вывода.
FirstRowHasNamesBooleanУказать, содержат ли исходные данные заголовки.
IgnoredTagsStringНе создавать колонки для заданных узлов XML.
InputSeparatorStringУстановить разделитель данных для CSV.
KeptNodesStringДобавлять заданные узлы XML или JSON в вывод, даже если они пустые.
PagesIntegerЗагрузить заданное количество страниц.
RootPathStringУстановить родительские узлы XML или свойства JSON, или номера таблиц HTML для извлечения данных.
SkippedNodesStringИсключить узлы XML или свойства JSON с заданными путями из вывода.

HTTP-заголовки

SaveToDB 10 позволяет добавлять HTTP-заголовки в текст запроса.

Добавляйте заголовки HTTP после строки URL, разделяя их одиночными переводами строк CR, LF или CRLF. Разделяйте заголовок и значение двоеточием.

Например:

https://some-service/{Symbol}
Accept: application/json
Referrer: https://some-service/page

В заголовках также можно использовать параметры в фигурных скобках. Например, для настройки заголовка referrer.

Методы HTTP

SaveToDB 10 поддерживает следующие методы HTTP: GET, POST, PUT, PATCH, MERGE, DELETE.

Методы используются в командах REST API для сохранения данных.

Добавляйте метод и пробел перед URL.

Тело сообщения

SaveToDB 10 поддерживает форматы сообщений application/json и application/x-www-form-urlencoded.

Надстройка автоматически определяет формат на основе тела сообщения.

Тело может содержать параметры, которые должны иметь префикс @.

Вы можете задать все необходимые параметры вручную или использовать встроенные параметры @json_row_values и @form_row_values, которые включают все значения строки.

Отделяйте тело от URL и заголовков двумя переводами строки.

Вот пример команды POST для добавления контакта:

POST https://www.zohoapis.com/crm/v2/Contacts

{"data":[{@json_row_values}]}

См. подробности в статье Сохранение данных по REST API.

SELECT из HTTP-запросов

SaveToDB 10 поддерживает команду SELECT для HTTP-запросов.

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

SELECT @Symbol, * FROM https://some-service/{Symbol=APPL}

Рекомендуем использовать полную форму этой команды, включая псевдоним колонки и квадратные скобки вокруг URL или команды HTTP.

Для приведённого выше примера лучше использовать следующую команду:

SELECT @Symbol AS Symbol, * FROM [https://some-service/{Symbol=APPL}]

Вы можете указать необходимые колонки для вывода и их псевдонимы. Например:

SELECT @Symbol AS Symbol, d AS Date, l AS Last FROM [https://some-service/{Symbol=APPL}]

Кроме того, вы можете использовать многострочные команды, включая условия WHERE и ORDER BY:

SELECT
    @Symbol AS Symbol,
    d AS Date,
    l AS Last
FROM
    [https://some-service/{Symbol=APPL}]
ORDER BY
    Date

Вот пример более сложной команды:

SELECT
    @Symbol AS Symbol,
    d AS Date,
    l AS Last
FROM
    [POST https://some-service/;ApiResult=true HTTP/1.1
Accept: application/json
Referrer: https://some-service/page

{"symbol":@symbol}
]
ORDER BY
    Date

Формальная грамматика HTTP-команд

HTTP-command = HTTP-message | select

HTTP-message = [ method SP ] request-target [ SP HTTP-version] *( NEWLINE header-name ":" header-value ) [ 2*NEWLINE message-body ]

method = "GET" | "POST" | "PUT" | "PATCH" | "MERGE" | "DELETE"

request-target = absolute-URI *( ";" parser-parameter-name "=" parser-parameter-value )

HTTP-version = "HTTP/1.1"

select = "SELECT" SP select-fields SP "FROM" SP select-source [SP "WHERE" conditions ] [ SP "ORDER BY" orderBy ]

select-source = "[" HTTP-message "]" / DQUOTE HTTP-message DQUOTE

NEWLINE = CR | LF | CRLF

Эта грамматика является расширением стандартов RFC:

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.