Compartilhar via


Função http_request

Aplica-se a:marca de seleção sim Databricks SQL com marcação de verificação sim Databricks Runtime 16.2 e versões superiores

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

Essa função requer invocação de parâmetro nomeada.

Sintaxe

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

Argumentos

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

  • connectionName

    Uma constante STRING referenciando um identificador de conexão HTTP existente. Esse argumento é necessário

  • httpMethod

    Uma STRINGexpressão constante que representa o método HTTP a ser usado. Os métodos a seguir têm suporte: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Esse argumento é necessário.

  • path

    Uma STRINGexpressão constante que é acrescentada à base_path URL de conexão. O caminho não deve conter travessia do diretório (../..). Esse argumento é necessário.

  • headerMap

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

  • paramMap

    Um MAP<STRING, STRING> opcional com parâmetros de consulta de solicitação 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

Um STRUCT<status_code INT, text STRING> onde

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