لاستخدام خلفية مخصصة، قم بإشارتها باستخدام نهج set-backend-service
. يحول هذا النهج عنوان URL الأساسي لخدمة الخلفية الافتراضي الخاص بطلب API وارد، إلى خلفية محددة، وفي هذه الحالة يُقصد خلفية "نسيج الخدمة".
يمكن أن يكون نهج set-backend-service
مفيدا مع واجهة برمجة تطبيقات موجودة لتحويل طلب وارد إلى خلفية مختلفة عن تلك المحددة في إعدادات API. لأغراض العرض التوضيحي في هذه المقالة، قم بإنشاء اختبار لواجهة برمجة تطبيقات وقم بتعيين النهج لتوجيه طلبات واجهة برمجة التطبيقات إلى خلفية "نسيج الخدمة".
إنشاء واجهة برمجة تطبيقات
اتبع الخطوات الموجودة في «إضافة API يدوياً» لإنشاء واجهة برمجة تطبيقات فارغة.
إضافة عملية GET إلى واجهة برمجة التطبيقات
كما هو موضح في نشر خدمة نهاية خلفية لـ "نسيج الخدمة"، تدعم عينة خدمة نواة ASP.NET التي تم نشرها على مجموعة "نسيج الخدمة" عملية HTTP GET واحدة على مسار URL /api/values
.
الاستجابة الافتراضية على هذا المسار مصفوفة JSON لسلسلتين:
["value1", "value2"]
لاختبار تكامل إدارة API مع المجموعة، قم بإضافة عملية GET المطابقة إلى API على المسار /api/values
:
تحديد واجهة برمجة التطبيقات التي أنشأتها في الخطوة السابقة.
تحديد + Add Operation.
في نافذة الواجهة الأمامية، قم بإدخال القيم التالية، واختر «حفظ».
الإعداد |
القيمة |
اسم العرض |
اختبار الخلفية |
عنوان URL |
GET |
عنوان URL |
/api/values |
إضافة نهج set-backend-service
إلى اختبار API .
في علامة التبويب تصميم، في قسم معالجة، اختر أيقونة محرر التعليمات البرمجية (</>).
وضع المؤشر داخل العنصر < الوارد >
أضف كشف نهج set-service-backend
.
في backend-id
، استبدل اسم الخلفية "نسيج الخدمة".
يعد sf-resolve-condition
شرطًا لإعادة حل موقع خدمة وإعادة إرسال طلب. تم تعيين عدد مرات إعادة المحاولة عند تهيئة الخلفية. على سبيل المثال:
<set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
حدد حفظ.
إشعار
إذا انخفضت عقدة واحدة أو أكثر في مجموعة Service Fabric أو تمت إزالتها، فلن تتلقى APIM إعلامًا تلقائيًا وتستمر في إرسال نسبة استخدام الشبكة إلى هذه العقد. لمعالجة هذه الحالات، قم بتكوين حالة حل مشابهة لـ: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"
اختبار واجهة برمجة التطبيقات الخلفية