일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- json string
- 취성패
- 방통대
- ObjectMapper
- 런던뮤지컬
- 아임포트
- 윈도우10 Education
- IAMPORT
- 정처기
- git
- snake case
- window10
- java
- window11
- 취업
- 오블완
- vmware workstation player
- 티스토리챌린지
- window11 Education
- github
- camel case
- git 설정
- git pull
- git pull --rebase
- 방송대
- Spring Boot
- window10 Education
- 자바
- 운영체제
- 소비통장
- Today
- Total
홍차의 미로찾기
[springdoc open-api] swagger Failed to fetch 오류 본문
회사에서 spring boot와 open-api swagger를 사용하고 있다.
이번에 새로운 프로젝트에 1.6.8 버전의 open-api를 추가했는데 api 실행 시 아래와 같은 오류가 발생했다.
로컬에서는 정상 작동하는데 aws에 올린 서버에서 문제가 되었다. (local - http / aws 서버 - https)
Failed to fetch.
Possible Reasons:
CORS
Network Failure
URL scheme must be "http" or "https" for CORS request.
확인해보니 요청 URL이 http 다. 내가 실행한서버는 https인데
아래를 보면 서버 url과 swagger 요청 url 이 다른걸 확인할 수 있다
구글링해서 원인은 아직 확인하지 못했지만 해결법은 찾았다.
servers url 설정으로 "/"를 넣어주면 현재 url로 요청된다. https 도 http 로 바뀌지않고 잘 나온다.
open api 설정 메소드에서 .addServersItem(new Server().url("/")) 를 추가한다.
만약, url 메소드에 full url을 입력하면 swagger 화면에 servers도 해당 url이 찍힌다.
그럼 api 요청 url도 동일하게 나옴.
다만, "/" 로 설정한 경우에는 자동으로 서버 url을 따라가는 것 같다.
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().addServersItem(new Server().url("/"))
.components(new Components().addSecuritySchemes("basicScheme",
new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("basic")))
.info(new Info().title("springdoc API").version("V1")
.license(new License().name("Apache 2.0").url("<http://springdoc.org>")));
}
[참고한 글]
https://github.com/springdoc/springdoc-openapi/issues/726
https://github.com/springdoc/springdoc-openapi/issues/118
https://github.com/springdoc/springdoc-openapi/issues/769
'프로그래밍 > 오류 정리' 카테고리의 다른 글
[JAVA] switch case문에서 enum class 사용 오류 (0) | 2022.01.08 |
---|