요즘 Spring에서 API를 개발할 때, Swagger는 필수입니다.
Swagger UI 3.x 이상 기본 경로는 {Host}/swagger-ui/index.html
입니다.
그리고 application.properties에서 기본 경로를 변경할 수 있습니다.
application.properties springfox.documentation.swagger.v2.path=api springfox.documentation.swagger-ui.base-url=api
Base url /api/swagger-ui/index.html Project Path http://test-api-local.com/api/swagger-ui/index.html
그런데 가끔 일부 경로가 사라지는 오류가 발생합니다.
아래 오류에서는 호스트에 있던 api 문자열이 사라졌습니다.
Failed to load API definition. Fetch error Failed to fetch http://test--local.com/apiapi?group=Test API Fetch error Possible cross-origin (CORS) issue? The URL origin (http://test--local.com) does not match the page (http://test-api-local.com). Check the server returns the correct 'Access-Control-Allow-*' headers.
application.properties에 지정한 경로에 문제가 있습니다.
api로 지정했기 때문에 전체 경로에서 api가 포함된 문자열이 치환됩니다.
그래서 API 로드 오류가 발생합니다.
일종의 Swagger 버그입니다.
해결 방법은 Swagger 경로를 정확하게 지정하면 됩니다.
application.properties springfox.documentation.swagger.v2.path=/api springfox.documentation.swagger-ui.base-url=/api