Partilhar via


http_request função

Aplica-se a:sinal de verificação sim Databricks SQL sinal de verificação sim Databricks Runtime 16.2 e superior

Faz uma solicitação HTTP usando uma conexão HTTP definida.

Esta função requer invocação de parâmetro nomeado.

Sintaxe

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

Argumentos

Um erro é gerado se um parâmetro for especificado mais de uma vez.

  • connectionName

    Uma constante de STRING fazendo referência a um identificador de conexão HTTP existente. Este argumento é necessário

  • httpMethod

    Uma STRINGexpressão constante que representa o método HTTP a ser usado. Os seguintes métodos são suportados: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Este argumento é necessário.

  • path

    Uma STRINGexpressão constante que é anexada base_path à URL da conexão. O caminho não deve conter atravessamento de diretórios (../..). Este argumento é necessário.

  • headerMap

    Um MAP<STRING, STRING> opcional contendo cabeçalhos de solicitação. O padrão é NULL.

  • paramMap

    Um MAP<STRING, STRING> opcional com parâmetros de consulta no formato JSON. O padrão é NULL.

  • jsonStr

    Uma expressão de cadeia de caracteres JSON opcional com o corpo da solicitação.

Devoluções

Uma STRUCT<status_code INT, text STRING> em que

  • status_code é o código de status HTTP da resposta do serviço externo. Por exemplo: 200 ou 403.
  • text é a resposta retornada pelo serviço externo. Normalmente, essa é uma cadeia de caracteres JSON.

Exemplos

-- 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",
    )
  );