Swagger 라이브러리?
서버 개발자가 API를 생성하면, 해당 API 명세서를 작성하여 클라이언트 개발자에게 전달을 하여야 한다.
그렇게 해야 클라이언트 개발자가 해당 명세서를 보고 개발을 진행할 수 있기 때문이다.
출금 API Spec
- URL
- request param
- response
그런데, 백엔드 개발 특성상 API가 변경되는 경우가 생기는데 그럴 때마다 명세서를 다시 작성하고 전달한다면 매우 번거로울 것이다.
이럴 때 도움 되는 라이브러리가 바로 Swagger이다.
Swagger는 서버로 요청되는 API 리스트를 HTML 화면으로 문서화하여 테스트할 수 있는 라이브러리이다.
서버가 가동되면서 @RestController
를 읽어 API를 분석하여 HTML 문서로 작성한다.
가장 많이 사용되는 버전은 2.9.2이나, Spring Boot가 업그레이드되면서 설정에 문제가 생기는 부분이 있어 3.0.0 버전을 사용할 예정이다.
설정 방법
pom.xml 설정
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
SwaggerConfiguration 클래스
config 패키지를 생성하여 클래스를 작성한다.
@Configuration
@EnableWebMvc
public class SwaggerConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("studio.square.testproject"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Square Studio Open API Test with Swagger")
.description("test description")
.version("1.0.0")
.build();
}
}
ApiInfoBuilder()으로 사용자에게 필요한 정보를 작성한 후 이를 이용하여 설정해준다.
접속
http://localhost:8080/swagger-ui/index.html 에 접속하면 API 명세서를 확인할 수 있다.
Reference
어라운드허브 스튜디오
'Back > spring' 카테고리의 다른 글
스프링부트 프로퍼티 암호화 (with. Jasypt) (0) | 2022.03.01 |
---|---|
스프링부트 서비스 구조 (0) | 2022.02.28 |
POST, GET, PUT, DELETE API (0) | 2022.02.21 |
스프링 웹 개발 기초 (0) | 2021.06.26 |