Gọi API từ SQL Server

Gọi API từ SQL Server

Dưới đây là các cách phổ biến để gọi HTTP API từ SQL Server, đặc biệt áp dụng nếu bạn muốn gọi API như Apps Script.

1. Dùng sp_OACreate (Tích hợp COM trong SQL Server)

Bạn có thể dùng sp_OACreate để gọi API tương tự như XMLHTTP trong VBA.
🔧 Ví dụ: Gọi API GET từ SQL Server

DECLARE @Object AS INT;
DECLARE @ResponseText AS VARCHAR(8000);
DECLARE @Url AS VARCHAR(1000) = 'https://jsonplaceholder.typicode.com/todos/1'; -- hoặc API Apps Script của bạn

-- Tạo đối tượng HTTP
EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT;

-- Mở kết nối và gửi request
EXEC sp_OAMethod @Object, 'Open', NULL, 'GET', @Url, false;
EXEC sp_OAMethod @Object, 'Send';

-- Nhận dữ liệu phản hồi
EXEC sp_OAGetProperty @Object, 'responseText', @ResponseText OUT;

-- Hiển thị kết quả
SELECT @ResponseText AS Result;

-- Giải phóng bộ nhớ
EXEC sp_OADestroy @Object;

⚠️ Yêu cầu: SQL Server phải bật OLE Automation Procedures:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;

-- Tắt Ole Automation Procedures

EXEC sp_configure 'Ole Automation Procedures', 0;
RECONFIGURE;

2. Dùng CLR (Viết mã .NET để gọi API)

Nếu bạn không muốn dùng sp_OA (vì bị hạn chế hoặc công ty chặn), thì có thể dùng CLR Integration:

    Viết đoạn code .NET (C#) để gọi API.

    Biên dịch thành DLL.

    Import vào SQL Server bằng CREATE ASSEMBLY.

    Dùng như 1 function.

    Cách này an toàn, mạnh mẽ, có thể xử lý JSON tốt hơn.

3. Gọi từ ứng dụng trung gian (thực tế hơn)

Một cách phổ biến trong hệ thống doanh nghiệp là:

    Từ SQL Server → Gọi Job, hoặc gửi tín hiệu (insert record) đến 1 hệ thống trung gian (VD: ứng dụng .NET, Python, hoặc VBA).

    Hệ thống đó sẽ gọi API, nhận kết quả, và lưu lại vào bảng SQL.

Bài viết liên quan:

Gọi API từ SQL Server