Utilizarea punctelor finale RESTful pentru a importa date în baza de date Azure SQL

Finalizat

Baza de date Azure SQL vă permite să importați date utilizând un punct final REST extern prin procedura sp_invoke_external_rest_endpointstocată de sistem. Puteți apela orice puncte finale REST HTTP direct din interogările SQL, făcând posibilă integrarea cu o gamă largă de servicii, inclusiv Funcții Azure, Aplicații logice Azure și Azure App Service.

De asemenea, dacă doriți să invocați un serviciu REST care nu se află în lista de servicii permise, puteți utiliza Azure API Management pentru a expune în siguranță serviciul dorit și a-l face disponibil pentru sp_invoke_external_rest_endpoint.

Explorați utilizarea API-ului

Să explorăm unele dintre cazurile de utilizare și scenariile cheie în care această funcționalitate poate fi benefică.

  • Procesarea datelor cu funcțiile Azure: Puteți utiliza sp_invoke_external_rest_endpoint pentru a apela o funcție Azure care procesează date. De exemplu, puteți să trimiteți un set de date către o funcție Azure pentru calcule sau transformări complexe, apoi să stocați rezultatele înapoi în baza de date.

  • Integrare cu Cognitive Services: Puteți apela API-uri servicii cognitive pentru a efectua activități cum ar fi analiza sentimentală, recunoașterea imaginilor sau traducerea limbii. De exemplu, puteți să trimiteți date text la API-ul Analiză text pentru a analiza feedbackul de la clienți și a stoca punctajele sentimentale în baza dvs. de date.

  • Fluxuri de lucru bazate pe evenimente: Utilizați sp_invoke_external_rest_endpoint pentru a declanșa fluxuri de lucru în Logic Apps sau Power Automate. Acest lucru poate fi util pentru automatizarea proceselor de afaceri, cum ar fi trimiterea de notificări sau actualizarea înregistrărilor în alte sisteme, pe baza modificărilor din baza de date.

  • Îmbogățire date: Îmbogățiți-vă datele apelând API-uri externe. De exemplu, puteți să apelați un API REST pentru a obține informații suplimentare despre un produs sau client, apoi să stocați datele în baza de date.

  • Gestionare API: Utilizați sp_invoke_external_rest_endpoint pentru a interacționa cu API-urile gestionate de administrarea API-urilor Azure. Acest lucru vă permite să utilizați API-uri existente pentru diverse funcționalități, fără a fi necesar să scrieți cod de integrare complex.

Implementați apeluri API securizate

Punctele finale REST necesită adesea autentificare, care pot fi efectuate prin perechi de valori cheie din șirul de interogare sau anteturile HTTP. Puteți stoca în siguranță aceste date utilizând DATABASE SCOPED CREDENTIALSIDENTITY parametrul care specifică modul de transfer al datelor de autentificare. Parametrul IDENTITY acceptă patru opțiuni: HTTPEndpointHeaders, HTTPEndpointQueryString, Identitate gestionată și Semnătură de acces partajat (SAS).

BAZA DE DATE CREATĂ CU SCOPED CREDENTIAL poate fi utilizată prin @credential parametrul din sp_invoke_external_rest_endpoint procedura stocată. Informațiile de autentificare trebuie furnizate prin parametrul SECRET într-un format JSON plat.

CREATE DATABASE SCOPED CREDENTIAL [https://.azurewebsites.net/api/]
WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"x-functions-key":"<your-function-key>"}';

Invocare punct final REST

Să luăm în considerare un scenariu în care doriți să importați date dintr-un API REST care furnizează informații meteo. Aveți deja un WeatherData tabel în baza de date Azure SQL cu City, Temperature, Conditionși Timestamp coloane.

Utilizați procedura stocată sp_invoke_external_rest_endpoint pentru a apela API-ul REST și a insera datele în tabel:

DECLARE @response NVARCHAR(MAX);
EXEC sp_invoke_external_rest_endpoint 
    @method = 'GET',
    @url = 'https://api.weather.com/v3/wx/conditions/current?apiKey=your_api_key&format=json',
    @response = @response OUTPUT;

INSERT INTO WeatherData (City, Temperature, Condition, Timestamp)
SELECT 
    JSON_VALUE(@response, '$.location.city'),
    JSON_VALUE(@response, '$.temperature'),
    JSON_VALUE(@response, '$.weatherCondition'),
    GETDATE();

Atunci când țineți cont de utilizarea punctelor finale REST, asigurați-vă că punctele finale pe care le apelați sunt sigure și că toate datele sensibile sunt gestionate corespunzător. Fiți atent la implicațiile performanței apelurilor API frecvente, mai ales atunci când tratați seturi mari de date sau actualizări de înaltă frecvență. De asemenea, implementați gestionarea erorilor pentru a gestiona problemele potențiale cu apelurile API, cum ar fi expirările sau răspunsurile nevalide.