استخدام نقاط نهاية RESTful لاستيراد البيانات إلى قاعدة بيانات Azure SQL
تمكنك قاعدة بيانات Azure SQL من استيراد البيانات باستخدام نقطة نهاية REST خارجية من خلال الإجراء sp_invoke_external_rest_endpointالمخزن من قبل النظام . يمكنك استدعاء أي نقاط نهاية HTTP REST مباشرة من استعلامات SQL الخاصة بك، ما يجعل من الممكن التكامل مع مجموعة واسعة من الخدمات، بما في ذلك Azure Functions وAzure Logic Apps وAzure App Service.
أيضا، إذا كنت ترغب في استدعاء خدمة REST غير ضمن القائمة المسموح بها، يمكنك استخدام Azure API Management لعرض الخدمة المطلوبة بشكل آمن وإتاحتها ل sp_invoke_external_rest_endpoint.
استكشاف استخدام واجهة برمجة التطبيقات
دعونا نستكشف بعض حالات الاستخدام الرئيسية والسيناريوهات حيث يمكن أن تكون هذه الوظيفة مفيدة.
معالجة البيانات باستخدام Azure Functions: يمكنك استخدام
sp_invoke_external_rest_endpointلاستدعاء Azure Function التي تعالج البيانات. على سبيل المثال، قد ترسل دفعة من البيانات إلى Azure Function لإجراء عمليات حسابية أو تحويلات معقدة، ثم تخزين النتائج مرة أخرى في قاعدة البيانات الخاصة بك.التكامل مع الخدمات المعرفية: يمكنك استدعاء واجهات برمجة تطبيقات الخدمات المعرفية لأداء مهام مثل تحليل المشاعر أو التعرف على الصور أو ترجمة اللغة. على سبيل المثال، قد ترسل بيانات نصية إلى واجهة برمجة تطبيقات تحليلات النص لتحليل ملاحظات العملاء وتخزين درجات التوجه في قاعدة البيانات الخاصة بك.
مهام سير العمل المستندة إلى الحدث: تستخدم
sp_invoke_external_rest_endpointلتشغيل مهام سير العمل في Logic Apps أو Power Automate. يمكن أن يكون هذا مفيدا لأتمتة العمليات التجارية، مثل إرسال الإعلامات أو تحديث السجلات في أنظمة أخرى استنادا إلى التغييرات في قاعدة البيانات الخاصة بك.إثراء البيانات: إثراء بياناتك عن طريق استدعاء واجهات برمجة التطبيقات الخارجية. على سبيل المثال، يمكنك استدعاء واجهة برمجة تطبيقات REST للحصول على معلومات إضافية حول منتج أو عميل ثم تخزين البيانات في قاعدة البيانات الخاصة بك.
إدارة واجهة برمجة التطبيقات: تستخدم
sp_invoke_external_rest_endpointللتفاعل مع واجهات برمجة التطبيقات التي تديرها إدارة واجهة برمجة تطبيقات Azure. يسمح لك هذا باستخدام واجهات برمجة التطبيقات الموجودة لوظائف مختلفة دون الحاجة إلى كتابة التعليمات البرمجية للتكامل المعقد.
تنفيذ استدعاءات واجهة برمجة التطبيقات الآمنة
غالبا ما تتطلب نقاط نهاية REST مصادقة، والتي يمكن إجراؤها عبر أزواج قيم المفاتيح في سلسلة الاستعلام أو عناوين HTTP. يمكنك تخزين هذه البيانات بأمان باستخدام DATABASE SCOPED CREDENTIALS المعلمة IDENTITY التي تحدد كيفية تمرير بيانات المصادقة. تدعم المعلمة IDENTITY أربعة خيارات: HTTPEndpointHeaders وHTTPEndpointQueryString والهوية المدارة وتوقيع الوصول المشترك (SAS).
يمكن استخدام بيانات اعتماد نطاق قاعدة البيانات التي تم إنشاؤها عبر المعلمة @credentialsp_invoke_external_rest_endpoint في الإجراء المخزن. يجب توفير معلومات المصادقة عبر المعلمة SECRET بتنسيق JSON ثابت.
CREATE DATABASE SCOPED CREDENTIAL [https://.azurewebsites.net/api/]
WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"x-functions-key":"<your-function-key>"}';
استدعاء نقطة نهاية REST
دعونا نفكر في سيناريو حيث تريد استيراد البيانات من واجهة برمجة تطبيقات REST التي توفر معلومات الطقس. لديك WeatherData بالفعل جدول في قاعدة بيانات Azure SQL مع CityTemperatureConditionأعمدة و و.Timestamp
sp_invoke_external_rest_endpoint استخدم الإجراء المخزن لاستدعاء واجهة برمجة تطبيقات REST وإدراج البيانات في الجدول:
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();
عند النظر في استخدام نقاط نهاية REST، تأكد من أن نقاط النهاية التي تتصل بها آمنة وأن أي بيانات حساسة تتم معالجتها بشكل مناسب. ضع في اعتبارك الآثار المترتبة على الأداء لمكالمات واجهة برمجة التطبيقات المتكررة، خاصة عند التعامل مع مجموعات البيانات الكبيرة أو التحديثات عالية التردد. أيضا، نفذ معالجة الأخطاء لإدارة المشكلات المحتملة مع استدعاءات واجهة برمجة التطبيقات، مثل المهلات أو الاستجابات غير الصالحة.