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

Limitations

  • Fungsi http_request ini dibatasi lajunya. Ini dirancang untuk kasus penggunaan interaktif dan berbasis agen, bukan untuk kueri batch volume tinggi. Jika Anda menjalankan http_request banyak baris dalam satu kueri, permintaan mungkin dibatasi dan mengakibatkan kesalahan. Untuk mengatasi hal ini, gunakan Databricks SDK untuk Python mengirim permintaan dalam batch yang lebih kecil dengan penundaan di antara mereka. Untuk kode baru, Databricks merekomendasikan penggunaan titik akhir proksi koneksi Unity Catalog dengan SDK penyedia alih-alih http_request.