REST, günümüzde çoğu web uygulaması tarafından kullanılan en yaygın web servislerinden biridir. Masaüstü bilgisayarlardan cep telefonlarına kadar herhangi bir cihazda REST kullanma esnekliği, bu servisi vazgeçilmez kılıyor. REST, istekte bulunmak için XML kullanmak yerine, birçok durumda basit bir URL’i kullanır. Bazı durumlarda ek bilgileri özel yollarla sağlamanız gerekir, ancak REST kullanan çoğu Web hizmeti yalnızca URL yaklaşımını kullanarak gerekli bilgileri edinmeye çalışır.
UiPath WebAPI aracı, HTTP İstek Sihirbazı’nı kullanarak REST API’sini değiştirmenize olanak tanır ve dakikalar içinde sonuç üretebilir. Uipath.Web.Activities pakedi projeye elendiğinde ‘HTTP Request’ ve ‘Orchestrator HTTP Request’ aktiviteleriyle bu servisi kullanmak oldukça kolay oluyor. Bu yazıda ise daha çok servisin Orchestator üzerinde yer alan bir kuyruktan nasıl veri çekme ve filtreleme yapabileceğini görebilirsiniz.
Örnek bir senaryo olarak belirli bir kuyruktan son 1 haftadaki başarılı olarak işlenmiş verileri çekmek istiyoruz diyelim. Normalde ‘Get Queue Items’ aktivitesi ile transactionItem’ın statüsü de seçilerek istenilen verilere ulaşılabiliyor; ancak senaryodaki gibi herhangi bir tarih filtresi koymamız bu aktivite ile mümkün olmuyor. Böyle durumlarda ‘Orchestator HTTP Request’ aktivitesi ile filtreleme yapmak daha kolay ve kullanışlı oluyor.
Senaryodaki gereken bilgileri getirebilmek için iki aşamalı bir işlem grubu var diyebiliriz. Öncelikle ilgili kuyruğun ismini verip id sini elde etmemiz gerekiyor. Çünkü bir sonraki aşamada id üzerinden ilerleyeceğiz.
Burada Orchestrator aktivitesinin input kısmında bulunan RelativeEndPoint özelliğine yukarıdaki gibi bir tanımlama yapmak gerekiyor. Bu tanımlamayla studio nun bağlı olduğu Orchestatordan verilen kuyruk ismine göre kuyruğa ait tüm bilgiler jsonResponse olarak dönüyor. Bu yüzden bu örnekte çıktı olarak idJsonResponse adında bir string değişken verildi. Daha sonra ise bu değeri iki defa Deserialize Json ile parse etmek gerekiyor; çünkü içerde bir json objesi daha bulunuyor. Yani elde etmek istediğimiz id değeri ‘value’ ismindeki bir özelliğin içinde bulunuyor; ‘value’ özelliği ise istekten sonra dönen cevabın içinde bulunuyor. Id değeri alındıktan sonra asıl yapılması gereken filtreleme ikinci aşamada yapılıyor.
Burada da Orchestrator aktivitesinin input kısmında bulunan RelativeEndPoint özelliğine yukarıdaki gibi bir tanımlama yapmak gerekiyor. Bu ifadeyle verilen kuyruk id sine göre statüsü başarılı olan ve verilen tarihten sonra işlenmeye başlayan veriler çekilmiş oluyor. Yukardaki tanımlamada ‘filterDate’ yerine tarih verirken ‘yyyy-aa-gg’ şeklinde vermek önemli. Daha sonra aynı ilk aşamada olduğu gibi 2 defa deseralize işlemi yapıp filtrelenmiş transactionItem lar bir jsonArray’e alınabiliyor. Döngü içerisindeki item değişkeni artık kuyruktaki transactionItem ları temsil ediyor. Bunun gibi bir çok filtre Rest Sharp olarak yazılabilir ve tanımlamanın içine eklenebilir.