강사님! 질문입니다. 프로젝트를 진행중인데 빠른 답변 부탁드립니다 ㅠㅠ
378
작성한 질문수 22
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
현재 프론트와 백앤드로 나눠서 프로젝트를 진행중입니다. swagger를 강의를 참고하여 적용중인데, 다음과 같이 문서화가 되지 않고있습니다.
@Configuration
@EnableSwagger2
@EnableAsync
@EnableWebMvc
public class SwaggerConfig implements WebMvcConfigurer {
@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/");
}
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select() // ApiSelectorBuilder 생성
.apis(RequestHandlerSelectors.basePackage("com.example.petree.domain")) // API 패키지 경로 todo 패키지 경로 수정
.paths(PathSelectors.ant("domain/**/controller/**")) // path 조건에 따라서 API 문서화 todo API 경로 수정
.build()
.apiInfo(apiInfo()) // API 문서에 대한 정보 추가
.useDefaultResponseMessages(false) // swagger에서 제공하는 기본 응답 코드 설명 제거
.securityContexts(Arrays.asList(securityContext()))
.securitySchemes(Arrays.asList(apiKey()))
;
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API 문서")
.description("API에 대해서 설명해주는 문서입니다.")
.version("1.0")
.build();
}
private SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.build();
}
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
}
private ApiKey apiKey() {
return new ApiKey("Authorization", "Authorization", "header");
}
}
위는 저희 프로젝트의 패키지경로입니다. 무엇이 문제인가요..?
혹시 몰라 SecurityConfig도 올려보겠습니다.. 

답변 1
0
안녕하세요. 현재 올려주신 코드만으로는 원인 파악이 쉽지가 않네요. 강의에서는 아래 버전을 사용중인데
implementation 'io.springfox:springfox-boot-starter:3.0.0'
올려주신 소스코드를 보니 @EnableSwagger2 를 사용중이신걸로 보여서 강의에서 사용하고 있는 스프링부트 버전과 Swagger 코드를 보고 다시 적용해보시는게 좋을꺼 같습니다.
WebMvcConfigurer와 @EnableAsync, @EnableWebMvc 도 따로 WebConfig 클래스에서 설정해주면 좋을꺼 같네요! SwaggerConfig에서는 swagger관련 설정만 넣어두고요.
버전 수정등을 했을 때도 해결이 안될경우 가능하시다면 메일로 github url이나 코드를 보내주시면 추가적으로 확인해보도록하겠습니다.
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30)
.select() // ApiSelectorBuilder 생성
.apis(RequestHandlerSelectors.basePackage("com.app.api")) // API 패키지 경로 todo 패키지 경로 수정
.paths(PathSelectors.ant("/api/**")) // path 조건에 따라서 API 문서화 todo API 경로 수정
.build()
.apiInfo(apiInfo()) // API 문서에 대한 정보 추가
.useDefaultResponseMessages(false) // swagger에서 제공하는 기본 응답 코드 설명 제거
.securityContexts(Arrays.asList(securityContext()))
.securitySchemes(Arrays.asList(apiKey()))
.ignoredParameterTypes(MemberInfo.class)
;
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API 문서")
.description("API에 대해서 설명해주는 문서입니다.")
.version("1.0")
.build();
}
private SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.build();
}
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
}
private ApiKey apiKey() {
return new ApiKey("Authorization", "Authorization", "header");
}
}
OAUTH2 질문
0
95
2
카카오토큰관련
0
79
2
auditing
0
76
1
전역에러처리질문
0
114
2
토큰 발급 관련 문의 드립니다.
0
130
2
이 흐름이 맞을까요??
0
126
2
OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다...
0
219
2
도메인형 패키지 구조 질문
0
242
1
application.yml token 선언 시 오류
0
322
1
토큰발행시 500 INTERNAL_SERVER_ERROR
0
157
1
oauth 회원가입 시 필수 추가 정보는 어떤 식으로 받으시나요?
0
287
2
io.jsonwebtoken.security.WeakKeyException 해결방법
0
387
1
리프레시 토큰 사용 관련 문의 건
0
336
1
Xss 에서 WebConfig 오류 발생됩니다.
0
671
1
applycation.yml 의 readTimeout 이 적용이 안됩니다.
0
696
2
강사님 Swagger에 질문드립니다.
0
294
2
kakao token 발급 시 에러
0
729
2
아직 초반부분인데 질문이있습니다.
0
204
1
socialLoginApiService map 주입
0
291
1
전역 에러 처리 메시지 관리
0
608
2
안드로이드 스튜디오와 협업
0
645
2
String accessToken = authorizationHeader.split(" ")[1];은 accessToken이 맞나요?
0
312
1
SocialLoginApiServiceFactory 생성자 관련 질문입니다.
0
256
1
OAuthAttributes 클래스의 toMemberEntity의 파라미터로 memberType이 들어가야하는 이유가 궁금합니다.
0
444
2





