생각정리/항해99
[주특기 프로젝트] 2일차
생각중임
2023. 9. 17. 00:15
미니 프로젝트 진행
Swagger 적용
build.gradle (spring.boot version 3.1.3) 의존성 추가
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
스프링 3.1.3와 openapi 2.2.0 버전에서는 Controller와 Config를 추가하지 않아도 자동적으로 API명세서를 문서화시켜 준다. (자동완성으로는 2.1.0 버전이 끝이지만 2.2.0 버전으로 빌드하면 적용이 된다.)
SwaggerConfig 추가설정
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("v1-definition") // 그룹 지정
.pathsToMatch("/api/**") // API연결
.build();
}
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("FishingLoad API") // 문서화 제목
.version("v0.0.1") // 문서화 버전
.description("FishingLoad 프로젝트 API 명세서입니다.")); // 문서화 설명
}
}
검증 부분이 있다면 기본적인 패스는 접근 허가를 해줘야 한다.
"/swagger-ui/**", "/v3/api-docs/**"
오늘은 특강이 2개나 있어서 구현을 하는 시간이 조금 줄어들어 예정보다 살짝은 달라질 것 같은 느낌이다.
기본적인 회원가입 및 로그인과 게시글 작성, 수정, 삭제, 전체조회, 개별조회, 좋아요 기능은 추가를 해서 배포까지 마무리 지었다. 아직까지 프런트에서 직접적으로 데이터를 주고받지는 않았지만 포스트맨으로는 테스트가 가능했다.
오늘 처음으로 Swagger를 추가했는데, 분명히 추가를 할 설정은 다 했는 거 같은데 계속 오류가 뜨고 되지 않아서 계속 시도를 했는데 알고 보니 버전차이였다. 스프링 버전별로 적용이 안 되는 경우가 있는 듯하다..