티스토리 뷰
반응형
의존성 추가하기
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
스웨거의 경우 springDoc라는 라이브러리가 1개 더 있고,
2.x 와 3.x 버전의 차이가 있다.
SwaggerConfig.java 추가
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;
@Configuration //스프링 실행시 설정파일 읽어드리기 위한 어노테이션
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.ant("/*/**"))
.build();
}
}
이렇게 설정 파일만 추가해주고 서버를 켜주면 된다.
그러나 필자는 이때 에러가 하나 발생하게 되었다.
Error starting ApplicationContext.
To display the conditions report re-run your application with 'debug' enabled.
Failed to start bean 'documentationPluginsBootstrapper';
nested exception is java.lang.NullPointerException:
Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getPatterns()"
because "this.condition" is null
뭐 이런식의 에러였는데 application.properties에 한 줄 추가하고 해결했다.
# 스웨거 의존성 추가하고 서버가 안켜질 때
spring.mvc.pathmatch.matching-strategy = ant_path_matcher
결과 화면 : http://localhost:{my-port}/swagger-ui/
오.. 뭔가가 나온다. 하지만 대문짝 만한 Api Documentation이 맘에 들지 않는다..
SwaggerConfig를 수정해보자.
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;
@Configuration //스프링 실행시 설정파일 읽어드리기 위한 어노테이션
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.ant("/*/**"))
.build();
}
public ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("게시글 API")
.version("3.4")
.description("추삭수가 가능한 게시글 api 입니다잇!!")
.build();
}
}
음.. 조금 낫군!
필자는 만들어둔 컨트롤러가 있기 때문에 위와 같이 정보가 조금 더 나오게 되었다.
그 말인 즉슨 이정도 셋팅으로 현재 구현된 controller의 정보를 읽어 편리하게 다 만들어준다는 사실이다!!
반응형
'Back-end > Spring' 카테고리의 다른 글
@Autowired의 기본 간단 정리 (0) | 2022.08.04 |
---|---|
JWT 구현하기 (0) | 2020.08.25 |
Spring Boot 간편 로그인 구현하기(with security & oauth2.0) (1) | 2020.08.24 |
Jwt 세션방식을 토큰 방식으로.. (0) | 2020.08.22 |
SpringBoot에서 JPA 설정 및 데이터 저장해보기 (0) | 2020.08.09 |
댓글