---
# System prepended metadata

title: Ocelot Actions

---

# Ocelot Actions

Gateway üzerinden geçen işlemleri bir başka servise veya kuyruğa iletme fonksiyonunu yerine getirir.
Aynı zamanda farklı bir servisden gelen sonuca göre işleme devam etme rotası belirlenmesine imkan tanır.

Bir servis için örnek konfigürasyon;

```jsonld=
[{
  "url": "https://api.burgan.com.tr/fraud/payment/execute/{{user-id}}",
  "method": "POST | PUT | GET | QUEUE",
  "type": "fire-forget | suspend-forward",
  "rules": [
    {
      "expression": "response.data.result == 'IVN'",
      "action": "forward-after-ivn"
    },
    {
      "expression": "response.code == 496",
      "action": "forward-and-forget",
      "response-code": 475
    },
    {
      "expression": "response.code == 200",
      "action": "forward"
    }
  ],
  "data-map": [
    {
      "source": "request.body.instituion",
      "target": "instution"
    },
     {
      "source": "request.body.registration-number",
      "target": "abone.abone-no"
    }
  ]
}]
```
* **method** ilgili urlden ne consume edilecek ona bildirmek içinir
    * method tipleri kayıtlı DI adaptörleridir.
    * ilk aşamada http-get, http-post, http-put, queue(kafka) adaptörleri geliştirilecektir.
* **type** işlemin işleme şeklini belirler.
    * **fire-forget** olması durumda her bir işlemde işlemi kesintiye uğratmadan tanımlı url'e bildirimde bulunur. Rules tanımları çalışmaz.
    * **suspend-forward** gelen işlem bekletilir ve url çağrılıp rule tanımında bulunan sonuçlara göre hareket edilir.
* **rules** suspend-forward tipinde sağlanır. url çağrı sonucunda oluşan dönüş verisine göre işlemin akıbeti belirlenir.
    * **expression** ile çağrı sonucu değerlendirilir. 
    * **action** ile işlemin durumu belirlenir.
        * **forward-after-ivn** ile önce işlemle ilgili IVN araması yaptırılır. Sonrasında IVN işlemi olumlu sonuçlanırsa işlem devam eder. Olumsuz sonuçlanırsa işlem gateway üzerinde sonlandırılır.
        * **forward-and-forget** durumunda işlem yönlendirilir fakat sonucu beklenmeden işlem onucu sadece sağlanan **response-code** ile döner.
        * **forward** direkt işlem yönlendirilir ve sonucu ile geri döner.
:::warning
IVN Olumsuz sonlanması durumunda da bilgi geçilmeli mi ? yetkinlik düşünülmeli.
:::
