관리 메뉴

피터의 개발이야기

[Spring] Spring Boot에 Swagger 붙이기 본문

Programming/Spring

[Spring] Spring Boot에 Swagger 붙이기

기록하는 백앤드개발자 2021. 1. 4. 08:00
반응형

백엔드 개발과 프론트 개발을 위해 꼭 필요한 요소는 상호 소통일 것 입니다.

 

예전에 일했던 프로젝트에서는 프로세스를 관리하는 프로그램을 가지고 있었다.

기획단계에서 어플리케이션의 프로세스를 정의하고 그 프로세스에 코드를 부여하여,
그 프로세스에 대한 전문양식을 프로세스 관리 시스템에서 확인 할 수 있었다.

그래서 백엔드 개발자와 프론트 개발자들은 그 프로세스 전문 코드 양식과 설명에 따라 프로그램을 개발하였고,

오류나 기획단계에서 데이터 설계에도 큰 도움의 되었다.

 

이와 비슷한 swagger는 RestController 어노테이션을 기준으로 내부의 API를 자동 분석하여 HTML 문서로 제공하는 오픈소스이다.

swagger는 백엔드가 개발한 API들의 논리적 설명과 전문들의 정의를 볼 수 있다.

또한 바로 데이터를 적용하여 테스트를 진행할 수 있는 페이지여서 백엔드 자체 테스트에도 중요한 툴이 되기도 하였다.

 

gradle

	// swagger
	compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
	compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'

 

SwaggerConfig

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.peterica.swagger"))
//                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfo(
                "Swagger Test REST API",
                "API의 설명을 여기에 기제한다.",
                "API 버젼은 여기",
                "팀의 서비스 URL",
                new Contact("앱의 이름", "www.example.com", "ilovefran.ofm@gmail.com"),
                "License of API", "license URL", Collections.emptyList());
    }

}

 

 

Contoller

@RestController
@RequiredArgsConstructor
public class DemoController {

    private final TestService testService;

    @GetMapping("/")
    @ApiOperation(httpMethod = "GET", value = "pingPong", notes = "pingPong",
            response = String.class, tags = "시스템 모니터링")
    public String pong(){
        return "pong";
    }

    @GetMapping("/dbTest")
    @ApiOperation(httpMethod = "GET", value = "Mybatis Test", notes = "Mybatis Test", 
    		tags = "Mybatis테스트")
    public List<String> dbTest(){
        return testService.getTest();
    }
}

 

 

swagger 메인 페이지

적용이 정말 쉬웠다. 알아서 API들을 정리하여 표출하고 ApiOperation을 설정하여 부가적인 설명을 부여할 수 있었다.

 

Try it out을 누르면 테스트 할 수 있는 페이지로 변경된다.

 

 

Mybatis테스트를 실행 하였고
그 결과를 Response Body에서 확인 할 수 있다.

 

 

소스는 여기에 있습니다.

반응형
Comments