ServiceStatusChange Notification
Bir sigorta şirketinin kullanıma açık servis operasyonlarında değişiklik olduğunda gönderilen bildirim tipidir. İki tür değişikliği taşır: bir operasyonun sağlık statüsünün değişmesi (kapatılması / yeniden açılması) ve kataloğa bir operasyonun eklenmesi / katalogdan kaldırılması.
Payload’ın kökü bir değişim grubu dizisidir: her eleman bir ChangeType ve o değişikliğin etkilediği operasyonları sigorta şirketi bazında gruplanmış olarak taşır. Böylece tek bildirim birden fazla değişiklik türünü, birden fazla şirketi ve her şirket altında birden fazla operasyonu içerebilir. Aynı kalıp ProductChange ve ParameterChange bildirimlerinde de kullanılır.
Güncel statülerin tamamı her zaman Kullanıma Açık Servisler API’sinden okunabilir; bildirim yalnızca değişiklikten anlık haberdar olmayı sağlar.
Header ve zarf (envelope) yapısı için: Platform Entegrasyon Gereksinimleri. Bu bildirim tipinde cevap ve retry davranışı aşağıda ayrıca tanımlanmıştır: başarı yalnızca HTTP durum koduna göre belirlenir ve transport hatası dışında retry yapılmaz.
Endpoint
Bildirim Ne Zaman Gönderilir?
Bir katalog senkronu hem ekleme hem kaldırma ürettiğinde ikisi de aynı bildirimde, iki ayrı değişim grubu olarak gelir.
Kataloğun ilk kez oluşturulduğu senkron bildirim üretmez; tüm kataloğun “eklendi” olarak duyurulması gürültüden ibaret olurdu.
Kime Gönderilir?
Bildirim abonelik esaslıdır: acente yalnızca abone olduğu servis operasyonları için bildirim alır. Abonelik kaydı olmayan acenteye hiçbir bildirim gönderilmez.
Bu iki koşulun sonucu:
- Acenteye yeni bir ürün tanımlandığında aboneliğe dokunulmaz; o ürünün abone olunan operasyonları kendiliğinden bildirime girer.
- Payload acenteye özeldir: aynı katalog senkronu bir şirkette beş operasyon eklese, ikisine abone olan acente
Operationsaltında yalnızca o ikisini görür. Hiçbir operasyonu eşleşmeyen acenteye bildirim gitmez. - Servis katalogda zaten varken acenteye ürün sonradan tanımlanırsa
addedbildirimi gelmez (katalog değişmemiştir); bu durumdaProductChangebildirimi gelir ve güncel statülerGET /api/ServiceAvailabilities/agents/{agentId}(Acente Bazlı Durumlar) ucundan okunmalıdır.
Abone olunan kayıtlar GET /api/ServiceAvailabilities/agents/{agentId}/subscriptions ucundan izlenebilir. Abonelik tanımları şu an InsurGateway tarafından yapılır; self-servis abonelik uçları ayrıca yayınlanacaktır.
Örnek İstek
ReferanceNoopak bir idempotency anahtarıdır; format{AgentId}_{zamanDamgası+benzersiz}_0_0şeklindedir ve aynı bildirimin retry’larında değişmez.
Parse Edilmiş Payload
RequestObject.Payload alanı serialize edilmiş bir JSON string’tir; ikinci bir parse sonrasında aşağıdaki yapıya ulaşılır:
Değişim Grubu
Dizinin her elemanı bir değişim grubudur:
ChangeType Değerleri
AutoDisabledveManualDisabledbilgilendirme amaçlıdır: InsurGateway bu operasyonlara gelen istekleri engellemez. İsteği göndermeme ya da alternatife yönlendirme kararı platforma aittir.
Values Elemanı
Operations Elemanı
Bir kaydın kimliği (InsuranceCompanyId, ProductId, ServiceOperationId, OutsourceProcessId) dörtlüsüdür; InsuranceCompanyId operasyonu içeren Values elemanından, kalan üçü operasyonun kendisinden okunur. Uygulanacak işlem ise o elemanı içeren değişim grubunun ChangeType’ından gelir. Platform tarafındaki eşleştirme bu dörtlü üzerinden yapılmalıdır.
Örnek: Katalog Değişikliği
Katalog senkronu aynı koşuda hem ekleme hem kaldırma ürettiğinde ve birden fazla şirkete dokunduğunda da tek bildirim gönderilir; değişiklikler grup, şirketler Values listesi olarak ayrışır:
Güncel Durumun Okunması
Bildirim, değişikliği duyurur; tam listeyi taşımaz. Platform güncel statülerin tamamını Kullanıma Açık Servisler API’sinden okuyabilir:
GET /api/ServiceAvailabilities/agents/{agentId}— yalnızca acentenin kullanabileceği kayıtları döner; kapsam acentenin ürün yetkisinden çözülür.GET /api/ServiceAvailabilities/companies/{insuranceCompanyId}— bildirimdeki şirketin kayıtlarını döner.GET /api/ServiceAvailabilities— tüm kataloğu döner.
Listeleme uçlarının tamamı aynı sayfalama zarfını döner (Items, TotalCount, Page, Size, TotalPage, HasNextPage, HasPreviousPage) ve sayfa başına en fazla 200 kayıt verir.
Bildirim kaçırılsa bile statü kaybolmaz: bir sonraki bildirimde ya da periyodik okuma turunda güncel durum elde edilir. Uç noktaların ayrıntıları için API referansındaki Service Availability bölümüne bakınız.
Beklenen Cevap
Platform, bildirimi aldığında HTTP 2xx dönmelidir. InsurGateway başarıyı yalnızca HTTP durum koduna göre belirler; cevap gövdesi değerlendirilmez (gövde boş olabilir).
Başarı:
Hata:
2xx dışı herhangi bir HTTP kodu (örn. 500) hata kabul edilir.
Bildirim
ReferanceNoüzerinden idempotent işlenmelidir; aynıReferanceNoile yeniden gelen bir bildirim tekrar uygulanmamalıdır.
Retry
InsurGateway, bildirimi yalnızca platforma ulaşamadığında (bağlantı hatası / timeout — yani HTTP cevabı hiç alınamadığında) yeniden gönderir. Platformdan dönen 2xx dışı bir HTTP cevabı retry üretmez; hata loglanır ve bildirim düşülür.
Son denemede HTTP başlığında IsLastAttemptToReDelivery=true gönderilir.
