.Net Core Uygulamasında Swagger Kullanımı
Herkese merhaba;
Hayatımıza mikroservisler girdiğinden beri pek çok araç/kütüphane de girmiş bulundu. Biz de şirkette işimize kolaylık katan araçları kullanmaya çalışıyoruz. Bunlardan birisi de “Swagger”.
Swagger; API geliştirenler için sade ve kullanışlı bir arayüz sunuyor. Metotlarınızı ve aldıkları parametreleri görüyor, bu arayüz aracılığı ile basit bir şekilde yazdığınız API’leri test edebiliyorsunuz.
Peki .Net Core uygulamamıza nasıl ekleriz bu Swagger’ı derseniz öncelikle nuget.org kaynağından Swashbuckle.AspNetCore isimli paketi indirmeniz gerekli. Ben bu yazıyı yazarken son kararlı sürüm olan 5.5.1 sürümünü indirdim.
Arayüzden indirmeye aşina olmayanlar için Package Manager Console’dan Install-Package Swashbuckle.AspNetCore -Version 5.5.1 komutu ile de indirilebilir.
Bu paket indirilirken paketin başka bağımlılıkları da olduğunu belirtiyor sevgili Visual Studio, onları da alıyoruz. Burada Microsoft’un OpenApi’ının da paket olarak indirildiğine dikkat:
Paketleri aldıktan sonra uygulamanızda yapılandırmanız ve kullanmaya başlamanız çok kısa sürüyor.
Öncelikle .Net Core middleware’de Swagger’ı register etmek gerekiyor. Startup.cs’te ConfigureServices’te bunu şu şekilde yapıyoruz:
Swagger’ı service container’ınıza ekledikten sonra bunu uygulamamızda kullanmak için Configure metodunda bunu belirtiyoruz:
İşte bu kadar! Uygulamanızı çalıştırıp “https://localhost:{port}/swagger” URL’i ile artık API’larınızı görebilirsiniz.
Oluşturduğum API uygulamasının .Net Core versiyonu 3.1. Ben uygulamayı oluştururken Visual Studio’daki .Net Core Web Application seçeneğinden ilerleyip Empty değil de API olan seçeneği seçmiştim. Bu nedenle varsayılan olarak hazır bir controller ile oluşturuldu proje. Bu controllera bir tane de ben metot ekledim belirttiğim parametre kadar random hava durumu derecesi dönen. Uygulamayı çalıştırıp yukarıda bahsettiğim formatta URL’i girerseniz karşınıza metotlarınızı görebileceğiniz şuna benzer bir ekran çıkar:
Test edeceğiniz metodun üzerine tıklayıp detaylarını açıp “Try it out” butonuna basmanız gerekir. Sonrasında varsa parametreleriniz bunları girip “Execute” butonuna basmanız yeterli API’yı çağırmak için:
Bu şekilde yazdığınız metodu çağırıp test edebilir veya debug edebilirsiniz. Yapılan isteğin curl’i ve request url’i, response code, response body gibi detayları bulabilirsiniz test sırasında.
Eğer uygulamanızda Bearer Token Authentication varsa Swagger bunun için de seçenekler sunuyor. Örneğin ben bunu sağlamak ve de başlık, açıklama gibi bazı bilgileri de eklemek için şu şekilde bir extension metot yazdım ve ConfigureServices’te bu metodu register ettim:
Uygulamayı tekrar çalıştırdığınızda sağ üst köşede “Authorize” butonunun gelmiş olduğunu görecek ve bastığınızda da bearer token girebileceğiniz alan açılacak:
Swagger daha birçok özellik sunmakla birlikte lazım oldukça ve kurcaladıkça bu özellikleri keşfedebilirsiniz.
Yazının geliştirilmesi gereken kısımları var ise yorumlarda belirtin, mutlu olurum. Esen kalın.
Elif