Поделиться через


функция http_request

применяется:отмечено Databricks SQL отмечено Databricks Runtime 16.2 и выше

Выполняет HTTP-запрос с помощью определенного HTTP-подключения.

Для этой функции требуется вызов именованного параметра.

Синтаксис

http_request( { CONN => connectionName |
                METHOD => httpMethod |
                PATH => path |
                HEADERS => headerMap |
                PARAMS => paramMap |
                JSON => jsonStr  } [, ..] )

Аргументы

Ошибка возникает, если параметр указан более одного раза.

  • connectionName

    Константа STRING, ссылающаяся на существующий идентификатор HTTP-подключения. Этот аргумент является обязательным

  • httpMethod

    STRING константное выражение, представляющее используемый метод HTTP. Поддерживаются следующие методы: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Этот аргумент является обязательным.

  • path

    STRING константное выражение, которое добавляется к base_path URL-адреса подключения. Путь не должен содержать обход каталога (../..). Этот аргумент является обязательным.

  • headerMap

    Необязательный MAP<STRING, STRING>, содержащий заголовки запросов. Значение по умолчанию — NULL.

  • paramMap

    Необязательный MAP<STRING, STRING> с параметрами запроса в формате JSON. Значение по умолчанию — NULL.

  • jsonStr

    Необязательное строковое выражение JSON с текстом запроса.

Возвраты

STRUCT<status_code INT, text STRING> где

  • status_code — это код состояния HTTP ответа из внешней службы. Например: 200 или 403.
  • text — это ответ, возвращаемый внешней службой. Как правило, это строка JSON.

Примеры

-- Set up a connect to Slack.
> CREATE CONNECTION slack_conn
  TYPE HTTP
  OPTIONS (
    host 'https://slack.com',
    port '443',
    base_path '/api/',
    bearer_token 'xoxb-xxxxx'
  );

-- Request to the external service
> SELECT http_request(
    conn => 'slack_conn',
    method => 'POST',
    path => '/chat.postMessage',
    json => to_json(named_struct(
      'channel', channel,
      'text', text
    ))
    headers => map(
       'Accept', "application/vnd.github+json",
    )
  );