생각정리/항해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를 추가했는데, 분명히 추가를 할 설정은 다 했는 거 같은데 계속 오류가 뜨고 되지 않아서 계속 시도를 했는데 알고 보니 버전차이였다. 스프링 버전별로 적용이 안 되는 경우가 있는 듯하다..