Herkese uzun bir aradan sonra selam 🙂
Bu yazıda Spring projelerinde Swagger’ı nasıl ekleyebileceğimize değinmeye çalışacağım.
Kısaca Swagger’dan bahsedecek olursak:
Swagger, yazılım geliştiricilerin RESTful web hizmetlerini tasarlamasına, oluşturmasına, belgelemesine ve kullanmasına yardımcı olan açık kaynak kodlu geniş bir araç ekosistemidir. Swagger’ın en önemli amacı API’ler için bir arayüz sağlamaktır. Daha fazla ayrıntı için şuraya bakabilirsiniz 🙂
Şimdi ise projenize nasıl ekleyebileceğimize bakalım.
Ben bağımlılıkları Maven ile yönettiğim için şu dependency’leri pom.xml dosyasına ekleyerek başlıyorum:
1 2 3 4 5 6 7 8 9 10 |
<dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger2</artifactid> <version>3.0.0</version> </dependency> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger-ui</artifactid> <version>2.8.0</version> </dependency> |
Projede Swagger’i kullanabilmemiz için Swagger konfigürasyonu yapıyoruz. Config class’ını yazıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package com.altinok.cosmeticapi.swagger; import io.swagger.annotations.Contact; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.altinok")) .paths(PathSelectors.any()) .build().apiInfo(apiEndPointsInfo()); } private ApiInfo apiEndPointsInfo() { return new ApiInfoBuilder().title("Example API Documentation") .description("Example API Docs") .build(); } } |
@EnableSwagger2 anotasyonunu projede kullanabilmek için kullanıyoruz.
api methodunu oluşturuyoruz ve bu methodun tipini Docket yapıyoruz. Docket sayesinde bir dokümantasyon oluşturulacağını ve Swagger2 tipinde olacağını belirtiyoruz.
ApiInfo ile dokümantasyonun başlık ve açıklama gibi bilgileri veriyoruz.
Model classlarına @ApiModel anotasyonunu ekliyoruz.
1 2 |
@ApiModel(value = "Product Model", description = "Product") |
1 2 |
@ApiModel(value = "Provider Model", description = "Provider") |
Controller class’ına @Api anotasyonunu ekliyoruz. Bu class’ın bir API dokümantasyonu olduğunu belirtiyoruz.
1 |
@Api(value = "Products Api documentation") |
Son olarak Application class’ına @EnableSwagger2 anotasyonunu ekleyelim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2 public class CosmeticapiApplication { public static void main(String[] args) { SpringApplication.run(CosmeticapiApplication.class, args); } } |
Model , Controller ve SwaggerConfig classlarında değişiklikleri tamamladıktan sonra projemizi ayağa kaldırıyoruz. API dokümanımıza http://localhost:8080/swagger-ui.html şuradan göz atıyoruz.


Bu şekilde projelerinize Swagger ekleyebilirsiniz. Umarım faydalı olmuştur.