백엔드 개발에 있어서 Web API를 문서화하기 위한 도구이며, 쉽게는 제품의 설명서라고도 생각할 수 있다.
간단한 설정으로 프로젝트의 API 목록을 웹에서 확인 및 테스트 가능하게 하는 라이브러리이고
특히 RESTful API를 문서화시키고 관리하는 것에 많이 쓰인다.
API 문서를 일반 문서로 작성하게 되면 API가 변경될 때마다 문서를 함께 수정해줘야 하는 번거로움이 있는데 SpringBoot에서는 Swagger를 사용하면 문서 수정을 자동화할 수 있다.
RESTful API 를 테스트할 수 있다는 것도 큰 장점이다.
build.gradle에 의존성을 추가한다.
implementation 'io.springfox:springfox-boot-starter:3.0.0'
application.yml
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
config 패키지를 만들고 SwaggerConfig 클래스를 생성
@Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) .useDefaultResponseMessages(false) .select() .apis(RequestHandlerSelectors.basePackage("com.example.test")) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger Test") .description("SwaggerConfig") .version("3.0") .build(); } }
이전 포스트들을 보면 @ApiOperation annotation이 붙어있습니다.
swagger를 좀 더 쉽게 보기위해 제목을 설정할 수 있습니다.
프로젝트를 실행하고 http://localhost:8812/board/swagger-ui/index.html로 접속한다.
저는 포트를 8812로 썼고 context-path를 /board로 설정했습니다.