Documentation Index
Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
Use this file to discover all available pages before exploring further.
Senaryo: SOAP XML verisi dönen bir web servis ç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
API Call görevi ekle
Görevlerin listelendiği diyalogtan API Call seçeneğine tıklanır.
Once modunu seç
Görevin bir kez çalışacağını belirtmek için “Once” seçeneği seçilir.
Web servis erişim bilgilerini gir
Veri okumasının yapılacağı ilgili web servis erişim bilgileri girilir.
Output anahtar bilgisini ayarla
Bir sonraki görevde web servisden dönen veriyi kullanabilmek için output anahtar bilgisine “soapResponse” 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 SOAP XML Verisi dönmektedir, yani soapResponse değeri içerisinde aşağıdaki veri olacaktır:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:example="http://www.example.com">
<soapenv:Header></soapenv:Header>
<soapenv:Body>
<example:users>
<example:user>
<example:id>1</example:id>
<example:name>user 1</example:name>
<example:description>description of user 1</example:description>
</example:user>
<example:user>
<example:id>2</example:id>
<example:name>user 2</example:name>
<example:description>description of user 2</example:description>
</example:user>
<example:user>
<example:id>3</example:id>
<example:name>user 3</example:name>
<example:description>description of user 3</example:description>
</example:user>
</example:users>
</soapenv:Body>
</soapenv:Envelope>
Görev-2: API Call konnektörü ile API’ye veri gönderme
API Call görevi ekle
Görevlerin listelendiği diyalogtan API Call seçeneğine tıklanır.
Loop modunu seç
Önceki görevden gelen dizi verisi üzerinde döngü ile çalışılacağını belirtmek için “Loop” seçeneği seçilir.
XPath belirle
Bir önceki görevde girilen output anahtar bilgisi (“soapResponse”) değerinin neresinin dizi olarak işlenmesi gerektiği bilgisi XPath olarak yazılır.XPath yazılırken bir önceki veri üzerinde XML olarak işlem yapılmasını belirtmek için ”#/” işareti, anahtar bilgisine (“soapResponse”) eklenir. Sonrasında XPath olarak dizi elemanlarının olduğu path girilir. SOAP Xml içerisinde genellikle namespace’ler yer aldığından bu namespace’ler ile XPath yazılması zor olabilir. Bu durumda XPath içerisinde local-name() metodu yazılması önerilmektedir. Bu örnek için XPath yazan yere şu yazılmalıdır: “{{soapResponse#//[local-name()=‘Items’]/[local-name()=‘Item’]}}”
Hedef API erişim bilgilerini gir
Verinin gönderileceği erişilmek istenen ilgili API erişim bilgileri girilir.
Şablon mesaj bilgisini gir
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 SOAP XML verisine erişilecek XPath bilgisi girilmelidir.
Bu örnekte, bir önceki görevden dönen soapResponse verisi üzerinde “{{soapResponse#//[local-name()=‘Items’]/[local-name()=‘Item’]}}” 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 XML olacaktır.
<example:user>
<example:id>1</example:id>
<example:name>user 1</example:name>
<example:description>description of user 1</example:description>
</example:user>
Bu XML üzerinde çalıştırılmak istenen şablon aşağıdaki gibi olduğunu düşünelim:
{
"test_id":"{{LOOP_VARIABLE#//*[local-name()='id']/text()}}",
"test_name":"{{LOOP_VARIABLE#//*[local-name()='name']/text()}}",
"test_description":"{{LOOP_VARIABLE#//*[local-name()='description']/text()}}"
}
Burada hedef veriyi almak için LOOP_VARIABLE yanında kullanılan XPath’in text() metodu ile bittiğine dikkat edilmelidir.
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"
}