http_request Fonction

S’applique à :case cochée oui Databricks SQL case cochée oui Databricks Runtime 16.2 et versions ultérieures

Effectue une requête HTTP à l’aide d’une connexion HTTP définie.

Cette fonction nécessite un appel de paramètre nommé.

Syntaxe

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

Les arguments

Une erreur est générée si un paramètre est spécifié plusieurs fois.

  • connectionName

    Constante STRING référençant un identificateur de connexion HTTP existant. Cet argument est obligatoire

  • httpMethod

    Expression STRINGconstante représentant la méthode HTTP à utiliser. Les méthodes suivantes sont prises en charge : «GET », « POST », « PUT », « DELETE », « PATCH ». Cet argument est obligatoire.

  • path

    Expression STRINGconstante qui est ajoutée à l’URL base_path de connexion. Le chemin d’accès ne doit pas contenir de traversée de répertoire (../..). Cet argument est obligatoire.

  • headerMap

    Un élément MAP<STRING, STRING> facultatif contenant des en-têtes de requête. La valeur par défaut est NULL.

  • paramMap

    Un MAP<STRING, STRING> facultatif avec des paramètres de requête au format JSON. La valeur par défaut est NULL.

  • jsonStr

    Expression de chaîne JSON facultative avec le corps de la requête.

Retours

Un STRUCT<status_code INT, text STRING> pour lequel

  • status_code est le code d’état HTTP de la réponse du service externe. Par exemple : 200 ou 403.
  • text est la réponse retournée par le service externe. En règle générale, il s’agit d’une chaîne JSON.

Exemples

-- 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

  • La http_request fonction est limitée. Il est conçu pour les cas d’usage interactifs et basés sur un agent, et non pour les requêtes par lots à volume élevé. Si vous exécutez http_request de nombreuses lignes dans une requête unique, les requêtes peuvent être limitées et entraîner des erreurs. Pour contourner ce problème, utilisez le Kit de développement logiciel (SDK) Databricks pour Python pour envoyer des requêtes en lots plus petits avec des délais entre eux. Pour le nouveau code, Databricks recommande d’utiliser le point de terminaison proxy de connexions du catalogue Unity avec le KIT de développement logiciel (SDK) du fournisseur au lieu de http_request.