Swagger Nedir? Ne İşe Yarar?

Orhan Ararat
Android Türkiye
Published in
3 min readAug 20, 2019

Herkese Merhaba,

Bu yazımda sizlere Swagger nedir? ve ne için kullanılır ondan bahsetmeye çalışacağım. Öncelikle Api nedir ondan bahsetmek istiyorum.

Api Nedir?

Api (Application Programming Interface) yani Uygulama Programlama Arayüzüdür. Bir uygulamaya ait işlevlerin ve üretilen verilerin başka uygulamalarda da kullanılabilmesi için geliştirilen arayüzün adina API denir. Örneğin hem mobil uygulama hemde web uygulama kullanılan bir sistemde bu uygulamaların hem kendi içerisinde hemde server ile sağlıklı iletişim kurabilmesi için ayni dili konuşması gerekiyor. Bu diller içerisinde en yaygın olanı SOAP ve REST dir.

SOAP’da xml, REST’de ise JSON veri yapısı kullanılır.

Swagger Nedir?

Web API geliştirmede en önemli ihtiyaçlardan biri dokümantasyon ihtiyacıdır. Çünkü API methodlarının ne işe yaradığı ve nasıl kullanıldığı dokümantasyon içeresinde anlaşılır olması gerekir. Api dokümantasyonunu el emeği ile yazmak hem zordur hemde güncel tutması imkansızdır. Bir biçimde bu dokümantasyonu güncel olarak üretmek gerekir. Burada imdadımıza swagger yetişiyor.

Swagger’ın önemli bir amacı RestApi ler için bir arayüz sağlamaktır. Bu hem insanların hemde bilgisayarlara kaynak koda erişmeden RestApi lerin özelliklerini görmesine, incelemesine ve anlamasına olanak sağlar.

Şimdi size Spring Boot ile Swagger’ın kurulmasi ve kullanılmasını anlatacağım.

Swagger’ın Proje Eklenmesi

Swagger’ın Gradle da projeye dahil edilmesi için build.gradle dosyası içerisine dependency olarak resimde ki gibi eklenmesi gerekir.

compile 'io.springfox:springfox-swagger2:2.9.2'
compile 'io.springfox:springfox-swagger-ui:2.9.2'

Swagger’ın Maven da projeye dahil edilmesi için ise pom.xml dosyası içerisine yine dependency olarak aşağıdaki resimde görüldüğü gibi eklenmesi gerekir.

Maven ile Swagger’ın projeye dahil edilmesi

Swagger’ın Konfigürasyon İşleminin Yapılması

Swagger’ı projemize dahil ettikten sonra bazı konfigürasyon işlemlerini gerçekleştirmemiz gerekir.

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.pathMapping("/");

}
}

@Configuration olduğunu belirttikten sonra @EnableSwagger2 ile Swagger 2.0 spesifikasyonunu aktif hale getiriyoruz. DocumentationType.SWAGGER_2 ile Swagger 2 kullanacağımızı belirtiyoruz, burayı 1.2 ya da WEB ile değiştirebilirsiniz. select() ile ApiSelectorBuilder instance’si döndürülüyor ve ayarlarımız bunun üzerine yapılıyor. apis() ile dokümana dahil edilecek paketleri seçebiliyoruz, şu an tüm paketler dahil isterseniz bunu değiştirerek belirlediğini paketleri kullanabilirsiniz. paths() ise yine aynı şekilde dokümana dahil edilecek adreslerimizi belirlediğimiz yerdir.

Şimdi yaptığımız projeyi ayağa kaldırıyoruz ve {{adres}}/swagger-ui.html adresine giderek swagger ile oluşturulmuş olan dokümantasyona ulaşabiliriz.

Swagger Dokümantasyonu

Yukarıda da görüldüğü gibi uygulama içerisinde gerçekleştirmiş olduğumuz Request-Response modellerinin bir listesini görüyoruz.

Swagger ile POSTMAN gibi uygulamalara gerek duymadan işlemlerimizi gerçekleştirebiliriz. Şimdi örnek olarak GET ve POST işlemlerinin nasıl yapıldığına bakalım.

GET İşlemi

GET işleminin 1.Adımı
GET İşleminin 2.Adımı
GET işleminin sonucu

Resimlerde de görüldüğü gibi GET işleminin sonucunda kayıtlı olan datalarımız listelenmiştir.

POST İşlemi

POST İşleminin 1. Adımı
POST İşleminin 2.Adımı
POST İşleminin Sonucu

Resimlerde de görüldüğü gibi POST işlemini gerçekleştirdik ve bunu sonucunda sistem yine bize kayıt ettiğimiz değeri geri dönderdi.

Bu yazımda Swagger’ı projeye dahil ettik, basit konfigürasyon ayarlarını yaptık ve swagger-ui ile nasıl deneme isteklerini gönderebileceğimizden bahsettik. Umarım faydalı olmuştur.

--

--