Görevler Arası JSON Veri Aktarımı ve Kullanımı
Senaryo: JSON verisi dönen bir API çağrılacak, dönen sonuç içerisindeki array tipindeki elemanların her biri belirli bir format ile başka bir API'ye gönderilecektir.
Bu durumda iki tane API Call konnektörünü görev olarak eklenmelidir. Birincisi okuma diğeri ise döngü içinde yazma için gereklidir.
Görev-1: API Call konnektörü ile veri okuma
- Görevlerin listelendiğin diyalogtan API Call seçeneğine tıklanır.
- Görevin bir kez çalışacağını belirtmek için "Once" seçeneği seçilir.
- Veri okumasının yapılacağı ilgili API erişim bilgileri girilir.
- Bir sonraki görevde API'den dönen veriyi kullanabilmek için output anahtar bilgisine "jsonResponse" değeri verilir. (Bu değer adını istediğiniz şekilde isimlendirebilirsiniz.)
Bu görev çalıştırıldığında bu örnekte aşağıdaki JSON Verisi dönmektedir, yani "jsonResponse" değeri içerisinde aşağıdaki veri olacaktır:
{ "users": [ { "id": 1, "name": "user 1", "description": "Description of user 1" }, { "id": 2, "name": "user 2", "description": "Description of user 2" }, { "id": 3, "name": "user 3", "description": "Description of user 3" } ] } |
Görev-2: API Call konnektörü ile API'ye veri gönderme
- Görevlerin listelendiğin diyalogtan API Call seçeneğine tıklanır.
- Önceki görevden gelen dizi verisi üzerinde döngü ile çalışılacağını belirtmek için "Loop" seçeneği seçilir.
- Bir önceki görevde girilen output anahtar bilgisi ( "jsonResponse" ) değerinin neresinin dizi olarak işlenmesi gerektiği bilgisi JSONPath olarak yazılır.
- JSON Path yazılırken bir önceki veri üzerinde JSON olarak işlem yapılmasını belirtmek için "#." işareti, anahtar bilgisine ("jsonResponse") eklenir. Sonrasında JSON Path olarak dizi elemanlarının olduğu path girilir. Dizinin tüm elemanlarının işleneceğini belirtmek için ise "[*]" ifadesi eklenir. Bu durumda bu örnek için JSON Path yazan yere şu yazılmalıdır: {{jsonResponse#.users[*]}}
- Verinin gönderileceği erişilmek istenen ilgili API erişim bilgileri girilir.
- Gönderilmek istenen şablon mesaj bilgisi girilir. Şablon mesaj bilgisi içerisinde döngüdeki elemanların değerleri kullanılmak istenirse "LOOP_VARIABLE" ifadesi ile ilgili eleman içindeki verinin şablona eklenmesi sağlanır. LOOP_VARIABLE ile beraber döngü için hedef gösterilen eleman içindeki JSON verisine erişilecek JSON Path bilgisi girilmelidir.
Bu örnekte, bir önceki görevden dönen "jsonResponse" verisi üzerinde {{jsonResponse#.users[*]}} ifadesi çalıştırıldığında 3 adet eleman döner ve bu görevin 3 kez çalışacağını gösterir.
İlk çalışmada LOOP_VARIABLE değeri içinde aşağıdaki JSON olacaktır.
{ "id": 1, "name": "user 1", "description": "Description of user 1" } |
Bu JSON üzerinde çalıştırılmak istenen şablon aşağıdaki gibi olduğunu düşünelim:
{ "test_id":"{{LOOP_VARIABLE#.id}}", "test_name":"{{LOOP_VARIABLE#.name}}", "test_description":"{{LOOP_VARIABLE#.description}}" } |
Bu durumda API Call ile gönderilecek istek gövdesi aşağıdaki şekilde olacaktır:
{ "test_id": "1", "test_name": "user 1", "test_description": "Description of user 1" } |