Azure Logic Apps İle RESTful Web Servislerin Kullanımı

Bu yazımızda Logic Apps üzerinden RESTful web servisin nasıl kullanıldığını anlatmaya çalışacağız. Senaryomuz ise web servise istek gönderip aldığımız yanıt mesajını işlenmesi. Mesajı alıp parse ettikten sonra  istediğiniz yere yönlendirebilirsiniz.

Bir tane Logic App oluşturalım. Burada “Resource Group” tercihinde “User existing” diyerek var olan “yahyatest1” grubunu seçtim, siz isterseniz “Create new” (Yeni oluştur) seçeneği ile yeni bir tane oluşturabilirsiniz. Bilgileri aşağıdaki ekranda görüldüğü gibi girip “Create” butonuna basarak Logic App oluşturma işlemini tamamlayalım.

01-create-logic-app-resource-group

Azure Portal üzerinde sol taraftaki Logic App menüsüne tıklayalım. Biraz önce oluşturduğumuz uygulamamızı seçip “Logic App Designer” alanına geçiş yapıyoruz.

02-logic-app-designer-restful-api

Karşımıza gelen template listesinden “Blank Logic App” (Boş Mantıksal Uygulama) seçelim.

Logic App İle HTTP Request (İstek) Gönderilmesi ve HTTP Response (Yanıt) Alınması

Senaryomuza göre önce web servise istek gönderip yanıt alacağımızdan dolayı ilk olarak HTTP tetikleyicisini seçiyoruz. Arama kutusuna “http” yazdığımızda http ile ilgili trigger ve action listesi gelecektir bunların arasından seçimimizi hızlıca yapıyoruz.

03-logic-app-designer-http-request

Açılan pencerede, HTTP isteği göndereceğimiz URL ve bazı diğer bilgileri girebileceğimiz alanlar mevcut. Web servis olarak “https://jsonplaceholder.typicode.com/” adresini kullanacağız. Parametre olarak “userId” ve değer olarak “5” bilgisini girelim. Bu bize userId si 5 olan kullanıcıların 10 adet yazılarını getirecektir.

04-logic-app-designer-http-GET-request-intervalMethod“: HTTP istek gönderme yöntemi. Listede hazır olarak GET, PUT, POST, PATCH ve DELETE yöntemleri var. Özel olarak değer girmek istediğimizde altta bulunan “Enter custom value” seçeneğini seçebiliriz.
Uri“: İstek göndereceğimiz hedef adres. Şuan “https://jsonplaceholder.typicode.com/posts?userId=5” adres bilgisini ve parametresini giriyoruz.
Headers“: HTTP isteğin başlığına parametre eklememize yardımcı olur. Bazı durumlarda ihtiyacımıza yönelik tanımlamaları buradan yapabiliriz. Şimdilik boş bırakalım.
Body“: HTTP istek mesajı. Özellikle POST, PUT veya PATCH yöntemlerini kullanırken bu alana ihtiyacımız oluyor. Şuan boş bırakabiliriz.
Interval“: Zaman aralığı. İşlemin ne kadar aralıklarla yapılacağı bilgisini 2 olarak belirledik.
Frequency“: Sıklık. Ne kadar sıklıkla yapılacağı bilgisini “Minute” (dakika) olarak belirledik.

Bilgilerimizi yukarıdaki şekilde girip işlemlerimize devam edelim.

Logic App İle HTTP Response (Yanıt) Bilgisinin İşlenmesi (Parse JSON)

HTTP yanıtında gelen veriyi ayrıştırıp bir döngüye soktuktan sonra her bir mesajı Azure Service Bus kuyruğuna tek tek aktaralım. Bu şekilde farklı aksiyonları ve tetikleyicileri birlikte kullanmayı da tecrübe etmiş olacağız. Önce ayrıştırmak için altta bulunan “New Step” butouna basıp “Add an action” seçeneğini seçelim.

06-logic-app-designer-new-step-add-an-action

Karşımıza gelen pencerede “json” yazalım ve alttaki “Data Operations – Parse JSON” aksiyonunu seçelim.

05-logic-app-designer-http-GET-response-parse-json

Açılan pencerede birinci adım olarak “Content” (içerik) alanına fare ile tıklayıp, sağ tarafta “Dynamic content” sekmesindeki listeden “Body” seçeneğini seçelim. Buradaki “Body seçeneği ikondan da anlaşıldığı gibi aslında HTTP yanıtındaki içeriği temsil ediyor.

07-logic-app-designer-parse-json-dynamic-content
Peki HTTP response verilerini bu şekilde kullanabilirmiyiz? diye soracak olursak cevabımız HAYIR olacak. Çünkü veriyi parse edebilmemiz / ayrıştırabilmemiz için bu verinin hangi formatta olduğunu anlatacak bir de JSON Schema (JSON şema) ihtiyacımız var. Şema olayı genelde can sıkıcıdır fakat Logic App üzerinde bunun çok kolay bir şekilde yapıldığını hep birlikte göreceğiz. Öncellikle “https://jsonplaceholder.typicode.com/posts?userId=5” adresine browser (tarayıcı) üzerinden gidip sayfadaki bilgileri kopyalayalım.

08-jsonplaceholder-json-data-copy

Şimdi ikinci adımda “Use sample payloads to generate schema” (Şema oluşturmak için örnek verileri kullan) linkine tıklayalım. Biraz önce kopyaladığımız verileri açılan penceredeki “Enter or paste a sample JSON payload” alanına yapıştıralım. “Done” butonuna basıp JSON Schema oluşturma işlemini tamamlıyoruz.

09-logic-app-designer-enter-or-parse-a-sample-json-payload

Artık “Parse JSON” aksiyonumuzun son hali aşağıdaki şekilde olmalı.

10-logic-app-designer-parse-json-sample

Bundan sonra verileri ister Foreach döngüsüne sokup farklı konnektörler aracılığıyla yönlendirebilir, isterseniz hepsini alıp Service Bus kuyruğuna aktarabilirsiniz. Bunların nasıl yapıldığına dair herhangi bir soru veya talebiniz olursa buradan devam edebilirim. Şimdilik bu haliyle bırakıyorum.

Tasarım ekranın sol üst tarafındaki “Save” butonuna basıp işlemlerimizi kaydedelim ve yaptıklarımızı test edelim.

HTTP Request – Response İşlemleri ile Parse Etme İşlemlerinin Test Edilmesi

Test etmek için tasarım ekranının üst tarafındaki “Run” butonuna bastığımızda sonuç aşağıdaki şekilde olacaktır.

HTTP Request (İstek) ve Response (Yanıt) test sonucu;

12-logic-app-designer-http-input-output-restful-test

Data Operations / Parse JSON aksiyonu test sonucu;

13-logic-app-designer-parse-json-schema-input-output-restful-test

Bir sonraki makalemizde görüşmek üzere.

Saygılarımla.

Yahya Sönmez

Enterprise Integration - Azure API Management - Azure Function Apps - Azure Logic Apps - BizTalk Server - Azure Service Bus - Azure Redis Cache - Azure SQL - Asp.NET Core teknolojileri kullanarak web tabanlı kurumsal projeler geliştirmekte. Şuan serverless teknolojilerle birlikte hybrid mimari yapıları üzerine çalışmakta.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir