Swagger UI용 게이트웨이를 설정하는 방법

3626 단어
Kubernetes 클러스터에 Swagger UI 팟(Pod)을 설정하고 게이트웨이가 있는 경우 기본 경로를 노출한 경우 몇 가지 문제가 발생합니다.

문제가 있는 경우 입력과 함께 모달에 다음 메시지가 표시됩니다.

Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually




해결책



올바르게 사용하려면 경로 목록을 허용해야 합니다.
  • /swagger-ui/**
  • /swagger-resources/**
  • /swagger-ui.html
  • /v2/api-docs
  • /webjars/**
  • /view/** - [이것은 구성 가능]



  • 스프링 시큐리티 수정 예시




    private static final String[] AUTH_WHITELIST = {
            "/swagger-resources/**",
            "/swagger-ui.html",
            "/v2/api-docs",
            "/webjars/**"
    };
    
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers(AUTH_WHITELIST);
    }
    


    source

    Spring Cloud 게이트웨이 조건자




    spring:
      cloud:
        gateway:
          routes:
            - id: swagger-ui
              uri: ${swagger-ui_url}
              predicates:
                - Path=/swagger-ui/**,/swagger-resources/**,/swagger-ui.html,/v2/api-docs,/webjars/**,/view/**
    


  • Spring Cloud Gateway documentation
  • Baeldung example configuration Spring Cloud Gateway



  • 그것이 당신을 도울 수 있기를 바랍니다!

    좋은 웹페이지 즐겨찾기