Swagger
1.스웨거(Swagger)란?
스웨거는 Open Api Specification(OAS)를 위한 프레임워크다. url 리스트를 html화면으로 문서화 및 테스트할 수 있는 라이브러리. 즉, 상대 개발자한테 스웨거만 전달해주면 API path, Request, Response값 및 제약 등을 한번에 알려줄 수 있음
OAS : RESTful 웹서비스를 양식에 맞게 API스펙을 json과 yaml 형식으로 표현한다. 즉, 추가적인 설명없이 서비스를 이해할 수 있게 됨.
스웨거 기능
- swagger-editor : API 문서화
 - swagger-codegen : SDK 생성으로 빌드 프로세스 간소화
 - swagger-ui : API 시각화
 - swagger-inspector : API 시각화 및 테스트
 - swagger-hub : API 공유
 
2.설정(스프링 스타터 프로젝트 기준)
- (Maven)pom.xml에서 dependency 추가
 
<!-- swagger 설정 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>	
- application.properties
 
spring.mvc.pathmatch.matching-strategy=ant-path-matcher 추가
해당 설정은 스프링 버전과 dependency로 불러온 스웨거 버전의 호환문제가 생길 수 있으므로 해주는 설정이다.
3.구성
- Docket(DocumentationType.SWAGGER_2) : swagger 설정 필수로 Bean으로 등록해줘야 한다, 파라미터는 swagger 버전에 맞춰 설정해준다
    
- ignoredParameterType(ApiIgnore.class) : ApiIgnore어노테이션을 적용한 클래스를 안보이게 하겠다는 설정이다
 - apiInfo(사용자정의 메서드) : swagger-ui로 열린 http문서상 헤더, 설명 등을 사용자정의 메서드로 개발하고 이를 호출한다
        
- 해당 사용자정의 메서드 구성
 - ApiInfoBuiler() : 내용빌드시작
 - title() : 제목설정
 - description() : 부연설명설정
 - license().licenseUrl() : 라이센서, 라이센서 url 설정
 - version() : 버전 설정
 - build() : 내용빌드마무리
 
 - apis(RequestHandlerSelectors.basePackages(“컨트롤러 패키지명”)) : 컨트롤러 존재하는 패키지 등록
 - useDefaultResponseMessage(boolean) : 설정되지 않아도 대표적인 문서상태에 대한 표현 표시하느냐 마느냐
 
 - @ApiIgnore :
 - @ApiModel :
    
- value :
 - description :
 
 - @ApiModelProperty :
    
- example :
 
 - @ApiOperation :
    
- value :
 - notes :
 
 - @ApiResponses : 200,404,500 등등의 상황에 따라 표시할 내용
    
- @ApiResponse :
        
- code :
 - message :
 
 
 - @ApiResponse :
        
 
html로 확인
localhost:port번호/swagger-ui.html 접속!!!
스프링부트에서 스웨거 오류날때!!
스프링부트 버전에 따라 오류가 생기는 경우가 있다고 한다!          
application.properties에 spring.mvc.pathmatch.matching-strategy=ant-path-matcher를 추가시켜줘야함!