Webhook Mimarisi¶
- Webhook : yapı aslında kullanıcıların bir işlemi yapması bu sistemde herhangi bir işlem olabilir bu işlem gerçekleştikten sonra dinamik olarak yeni bir işlem tetikleme tanımlama mimarisidir.
- Örnek olarak kullanıcı bir fatura oluşturur bu işlem aslında Source SatisFaturaMaster Event EbelgeOlustur olarak tanımlanabilir bu kurallar doğrudan geliştiricilerin kabul ilkeleridir. İlgili işlem oluşturuğunda aşağıda görünen akış işler

- Başka bir akış olarakta aşağıdaki resim örnek verilebilir.

- Sistemde aslında 3 rol vardır. Tetikleme, Filtreleme ve İşleme:
Tetikleme¶
- Tetikleme : Geliştiricinin Filtreleme Yapısına kayıt göndermesidir.
var q = new SatisFaturaMaster();
var groupGuid = Guid.NewGuid();
await q.SendWebhookRequest("EBelgeEvrakTetikleme", q.EntegreSeri + q.EntegreNo, q.Tarih, groupGuid);
Filtreleme¶
- Filtreleme : Gönderilen kayıtlarla eşleşen bir webhook bulma işlemidir.
https://sfa.octapull.com/notification/alpata/webhook-tanim

- Yukarda göründüğü gibi webhook hedef bilgilerini içeririr.

- Asıl filtre kısmı önemlidir çünkü Source Event ve modelin içindeki alanların değerlerine göre eşleştirme işlemi yapılabilir.
- Bir event için birden fazla tanım yapılabilir.
- Bu kısımda loglar oluşur
İşleme¶
- İşleme aslında kendisine rabbitmq üzerinden gönderilen url, secret ve body bilgileri ile httprequest atan bir yapıdır.
- Rabbitmq üzerinden tek tek kayıtları çeker ve sonuçlarını yine ona o sırada gönderilen dblog kaydına yazar.