지난 회고에서 API 프로토타입을 완성하였다. (1. API 프로토타입 만들기)
이번에는 Swagger를 이용한 api 문서화 및 테스트와 CI를 적용해보았다.
그동안 수동으로 API 명세서를 작성하고, postman을 이용하여 각 json을 직접 입력해가면서 API를 테스트하였다. 이번 딥 다이브를 통해 이를 자동화해주는 도구들 중 가장 유명한 Swagger를 사용하여 이를 자동화해보았다.
가장 먼저, 구글링을 통해 다음과 같이 swagger를 적용해보았다.
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.5.0'
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths()
.build();
}
}
하지만 UnsatisfiedDependencyException가 발생하였다.
다음 자료를 참고하여 Springboot3에는 위의 의존성이 작동하지 않는 것을 알게 되었고, 의존성을 변경하고, SwaggerConfig.java 파일을 삭제하였다.
(https://velog.io/@kjgi73k/Springboot3에-Swagger3적용하기)
implementation 'org.springdoc:springdoc-openapi-ui:1.6.14'
변경 후 프로그램을 실행한 뒤, http://localhost:8080/swagger-ui/index.html 링크에 접속하여 다음 화면을 얻을 수 있었다. 보이는 것처럼 API method와 url, parameter가 자동으로 작성되고 파라미터에 값만 작성하여 쉽게 테스트하고 결과를 받아 문서화할 수 있었다.
