스웨거(Swagger)를 나는 알고는 있었지만 모르는 사람들도 꽤 많은거 같아요.
내가 경험했던 SI 프로젝트들에서는 여러 여건 상, 프론트 개발자와 백앤드 개발자를 구분 지어서 개발하는 경우가 그리 흔하지 않기 때문에 (거의 혼자 다함...) 이런 라이브러리에 별 관심이 없는 거 같기도하고요.
하지만, 분업화 및 전문화가 되어 가고 있는게 현실이고 프론트 개발자와 백앤드 개발자가 있는 프로젝트에서는 협업할때 꼭 필요한 꽤 좋은 라이브러리 같습니다.
크롬에서 백엔드를 호출만해도 json은 떨어지니 몇몇 사이트에서는 개발시 API 주소를 자바스크립으로 간단하게 등록하고 설명을 달아 협업하기도 하는데...
스웨거... 저도 한번 설정해보았습니다.
1. Gradle 설정
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.2.2'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.2.2'
2. API 문서화 메인 페이지에 접속하면 보이는 정보(셋팅 후 : http://localhost:8080/swagger-ui.html)
및 간단한 설정들... 이럴때 빌더 패턴을 많이 쓰는 군요.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) //기본정보
.select()
.apis(RequestHandlerSelectors.any()) //주소접근 옵션
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot REST Sample with Swagger")
.description("스웨거 테스트")
.termsOfServiceUrl("http://www-03.ibm.com/software/sla/sladb.nsf/sla/bm?Open")
.contact("user@gmail.com")
.license("Apache License Version 2.0")
.licenseUrl("https://github.com/IBM-Bluemix/news-aggregator/blob/master/LICENSE")
.version("2.0")
.build();
}
}
3. 이거 때문에 고생좀 했답니다. 나만 몰랐나 ^^
메타정보를 생성해주는게 있을 거 같다는 생각이 들었는데...설명서 보니 있네요.
//부트일경우...jar 메타를 설정해준다
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
4. 컨트롤러 하나 만들고~
5. http://localhost:8080/swagger-ui.html 입력하면 짜잔!
제가 만든 컨트롤러 리스트가 보이네요.
6. 파라미터가 어떤 값이 들어가는지도 나오게 되고요~
Try it 버튼을 클릭하게 되면 submit 과 같습니다.
7. 서버에 결과를 전송하고 다양한 상태값 정보를 볼 수 있습니다.
8. 부트 로그창을 보니 submit이 잘 이루어 졌네요.
이것저것 API를 만들어 놓고 잊어버리고 또 만들고 또만들고...
이제 이런일은 없어 질듯하네요...
'슬기로운 자바 개발자 생활 > 스프링 및 자바웹 서비스' 카테고리의 다른 글
WSDL 클라이언트 구현 CXF2 자바웹서비스 데이터 받기 (0) | 2017.09.10 |
---|---|
(웹서비스 구현) 자바 웹서비스/Wsdl/CXF 심플 (예제) (0) | 2017.09.10 |
intellij 와 github 간단 연결 (0) | 2017.08.15 |
Spring Validatir(스프링 밸리데이터) (0) | 2016.11.27 |
구글 API 사용하기 1 - 구글계정 로그인 - 안드로이드 (6) | 2016.05.15 |
댓글