Web geliştiricisiyseniz Postman’i büyük olasılıkla kullanmışsınızdır. Sadece 1-2 servis çağrısında bulunacaksanız çok sorun değil fakat 20-30 endpoint ile uğraşacaksanız, hatta Authorization gibi işlemleriniz de varsa bu biraz yorucu hal almaya başlıyor. Çünkü her seferinde aynı authorization işlemlerini her endpoint için yapmanız gerekiyor. Dev-Test-Prod ortamlarınız da varsa her url için aynı endpoint’e ait 3 tane request oluşturmanız gerekiyor. Bu gibi durumlar için basit ama büyük kolaylık sağlayacak birkaç öneride bulunacağım.
İlk olarak Postman’i açalım ve collection oluşturalım. Ardından collection’a bir isim verelim. Ben ‘OrnekPostmanKullanimi’ ismini verdim.
Bu yazı için oluşturmuş olduğum bir .net projesi mevcut(github linki aşağıdadır). Swagger arayüzü aşağıdaki gibidir. Aslında çok basit. Login kısmında kullanıcı adını gönderiyorsunuz bir token alıyorsunuz ve bu token ile auth işlemi yapılıyor. Ardından WeatherForecast kısmındaki endpoint’lere erişirken token’ı kullanıyoruz.
Şimdi postman tarafında account login için bir request oluşturalım. Burada da gördüğünüz gibi localhost:5001 sitesine bir post isteği atıyoruz.
Buraya kadar olan kısımları postman kullanan herkes biliyordur. Artık daha efektif nasıl kullanacağımız kısmına gelebiliriz. İlk olarak variable’ları bilmek gerekiyor(bkz. variable). Çünkü işimizi kolaylaştıran kısımlar burada başlıyor. Şimdi collection için variable ekranına gelelim.
Yukarıda Local-Test-Prod için farklı url’ler ekledim. Ayrıca CurrentUrl diye bir değişken daha ekledim. Bunu eklememin nedeni ise Local-Test-Prod ortamları için ayrı ayrı requestler oluşturmaya gerek yok. Bu nedenle request url’leritek bir yerden yönetilebilir hale getirdik. Örneğin şu anda bütün request’ler LocalUrl’e gönderilecek. ‘Current Value’ tarafındaki değeri {{ProdUrl}} yaptığımda ise artık requestler https://exampleprod.com/account/login şeklinde atılacaktır.
Artık sadece bir yerden değişiklik yaparak nasıl Local-Test-Prod ortamlarına istek atılabileceğini görmüş olduk.
Diğer iş kolaylaştırıcı kısma gelecek olursak. Bildiğiniz üzere token’ı aldıktan sonra her url için header kısmına Authorizaion key’i ile ‘bearer 111’ şeklinde ifade eklememiz gerekiyor. Peki, token süremiz kısa olduğunda bunu nasıl yöneteceğiz? Collection içinde 20 tane request olduğunu düşünelim. Yeni token’ı aldıktan sonra her seferinde gidip kullanacağımız url’in Authorization header’ına yeni aldığımız token’ı mı yazmamız gerekiyor. Epey uğraştırıcı. Bunun için ise scriptleri kullanacağız(bkz. scripting).
İlk olarak Login kısmında ürettiğimiz token’ı variable içine aktaralım.
Yukarıdaki script ile her login’i çağırdığımızda gidecek ve bizim için üretilen token’ı collection variables içindeki ‘Token’ alanına yazacak.
Artık login requestini yolladıktan sonra gelen token’i kopyalamak zorunda kalmadan direk bizim için kopyalamasını sağlıyoruz.
Peki, her request için yeni üretilen bu token’ın kullanılmasını nasıl sağlayacağız. Bir de ona bakalım. Kullandığım 2 yöntem var. İstediğinizi seçebilirsiniz.
- Her request’in header kısmına {{Token}} değişkenini koyabilirsiniz.
- Collection içindeki ‘Pre-request Script’ içine bir script yazabilirsiniz.
Her iki yöntemde rahatlıkla kullanılabilir. Genelde script olarak kullanıyorum. Nedeni ise yeni bir request eklendiğinde header’ına gidip Authorization: {{Token}} ataması yapmanız gerekiyor.
Her ikisi içinde birer örnek verelim.
Header’a token’ı elle ekleme yöntemi (1)
Pre-request script ile otomatik ekleme yöntemi (1)
Umarım değerli vaktinizi kazanmanıza yardımcı olacak yöntemlerdir. Bunların dışında sizlerin de eklemek istedikleriniz veya yanlış ifade ettiğim kısımlar varsa iletişime geçebilirsiniz.
Github üzerinde hem .net projesine hem de collection’ı bulabilirsiniz. Link: https://github.com/SinanBarut26/PostmanBlogPost