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

    一个引用现有HTTP连接标识符的常量STRING。 必须填写此参数

  • httpMethod

    表示要使用的 HTTP 方法的 STRING 常量表达式。 支持以下方法:“GET”、“POST”、“PUT”、“DELETE”、“PATCH”。 必须填写此参数。

  • path

    将常量表达式 STRING 追加到连接 URL 的 base_path 部分。 路径不得包含目录遍历(../..)。 必须填写此参数。

  • headerMap

    包含请求标头的可选 MAP<STRING, STRING> 参数。 默认值为 NULL

  • paramMap

    具有 JSON 格式的请求查询参数的可选 MAP<STRING, STRING> 参数。 默认值为 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",
    )
  );