<aside> 💡 해당 글은 Swagger 2버전을 기준으로 설명합니다.
</aside>
API를 개발하면 명세를 관리해야 한다. 명세란 API가 어떤 로직을 수행하는지 설명하고 로직을 수행하기 위해 어떤 값을 요청하며, 응답값은 무엇을 받을 수 있는지를 정리한 자료이다.
API는 개발 과정에서 계속 변경되므로 관리하는 명세를 주기적으로 업데이트를 해주어야 한다. 이 작업은 번거롭고 오래걸리는데, 이 문제를 해결하기 위해 Swagger라는 오픈소스 프로젝트가 등장했다.
SpringBoot 기준으로 pom.xml에 다음과 같은 의존성을 추가해야 Swagger를 사용할 수 있다.
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
@Configuration
**@EnableSwagger2**
public class SwaggerConfig {
private final String API_NAME = "MyShop API";
private final String API_VERSION = "1.0.0";
private final String API_DESCRIPTION = "MYSHOP API 명세서";
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.ignoredParameterTypes(AuthenticationPrincipal.class, CurrentCustomer.class, CurrentProvider.class)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.myshop.api"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title(API_NAME)
.description(API_DESCRIPTION)
.version(API_VERSION)
.build();
}
}