Özel bir arka uç kullanmak için ilkeyi set-backend-service
kullanarak buna başvurun. Bu ilke, gelen API isteğinin varsayılan arka uç hizmet tabanı URL'sini belirtilen bir arka uçtan(bu örnekte Service Fabric arka ucuna) dönüştürür.
İlke, set-backend-service
gelen bir isteği API ayarlarında belirtilenden farklı bir arka uçtan dönüştürmek için mevcut BIR API ile yararlı olabilir. Bu makaledeki tanıtım amacıyla bir test API'sini oluşturun ve ilkeyi API isteklerini Service Fabric arka ucuna yönlendirecek şekilde ayarlayın.
API oluşturma
Boş bir API oluşturmak için API'yi el ile ekleme'deki adımları izleyin.
API'ye GET işlemi ekleme
Service Fabric arka uç hizmetini dağıtma bölümünde gösterildiği gibi, Service Fabric kümesinde dağıtılan örnek ASP.NET Core hizmeti URL yolunda /api/values
tek bir HTTP GET işlemini destekler.
Bu yoldaki varsayılan yanıt, iki dizeden oluşan bir JSON dizisidir:
["value1", "value2"]
API Management'ın kümeyle tümleştirmesini test etmek için, yolundaki /api/values
API'ye karşılık gelen GET işlemini ekleyin:
Önceki adımda oluşturduğunuz API’yi seçin.
+ İşlem Ekle’yi seçin.
Ön uç penceresinde aşağıdaki değerleri girin ve Kaydet'i seçin.
Ayar |
Value |
Görünen ad |
Arka ucu test et |
URL |
GET |
URL |
/api/values |
İlkeyi set-backend-service
test API'sine ekleyin.
Tasarım sekmesindeki Gelen işleme bölümünde kod düzenleyicisi (</>) simgesini seçin.
İmleci gelen> öğesinin <içine yerleştirme
İlke deyimini set-service-backend
ekleyin.
içinde backend-id
, Service Fabric arka ucunuzun adını kullanın.
sf-resolve-condition
, bir hizmet konumunu çözümlemeye ve isteği yeniden göndermeye yönelik bir koşuldur. Arka uç yapılandırıldığında yeniden deneme sayısı ayarlandı. Örneğin:
<set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
Kaydet'i seçin.
Not
Service Fabric kümesindeki bir veya daha fazla düğüm devre dışı kalırsa veya kaldırılırsa, API Management otomatik bildirim almaz ve bu düğümlere trafik göndermeye devam eder. Bu durumları işlemek için aşağıdakine benzer bir çözüm koşulu yapılandırın: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"
Arka uç API'lerini test edin