지난 회고에서 API 프로토타입을 완성하였다. (1. API 프로토타입 만들기)

이번에는 Swagger를 이용한 api 문서화 및 테스트와 CI를 적용해보았다.

1. Swagger 사용하기


그동안 수동으로 API 명세서를 작성하고, postman을 이용하여 각 json을 직접 입력해가면서 API를 테스트하였다. 이번 딥 다이브를 통해 이를 자동화해주는 도구들 중 가장 유명한 Swagger를 사용하여 이를 자동화해보았다.

가장 먼저, 구글링을 통해 다음과 같이 swagger를 적용해보았다.

  1. 의존성 추가
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.5.0'
  1. SwaggerConfig.java 생성
@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가 자동으로 작성되고 파라미터에 값만 작성하여 쉽게 테스트하고 결과를 받아 문서화할 수 있었다.

Untitled