Bagikan melalui


fungsi http_request

Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

Membuat permintaan HTTP menggunakan koneksi HTTP yang ditentukan.

Fungsi ini memerlukan pemanggilan parameter bernama.

Sintaksis

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

Argumen

Kesalahan dimunculkan jika parameter ditentukan lebih dari sekali.

  • connectionName

    Konstanta STRING yang mengacu pada pengidentifikasi koneksi HTTP yang sudah ada. Argumen ini diperlukan

  • httpMethod

    STRING Ekspresi konstanta yang mewakili metode HTTP yang akan digunakan. Metode berikut didukung: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Argumen ini diperlukan.

  • path

    STRING Ekspresi konstanta yang ditambahkan ke base_path URL koneksi. Jalur tidak boleh berisi traversal direktori (../..). Argumen ini diperlukan.

  • headerMap

    MAP<STRING, STRING> yang opsional berisi header permintaan. Defaultnya adalah NULL.

  • paramMap

    MAP<STRING, STRING> opsional dengan parameter kueri permintaan dalam format JSON. Defaultnya adalah NULL.

  • jsonStr

    Ekspresi string JSON opsional dengan isi permintaan.

Pengembalian

STRUCT<status_code INT, text STRING> di mana

  • status_code adalah kode status HTTP respons dari layanan eksternal. Misalnya: 200 atau 403.
  • text adalah respons yang dikembalikan oleh layanan eksternal. Biasanya, ini adalah string JSON.

Contoh

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