3.6. 경로 라우팅

APIcast는 3scale 계정(또는 API CAST_SERVICES_LIST 환경 변수가 구성된 경우)에서 구성된 모든 API 서비스를 처리합니다. 일반적으로 APIcast는 API 요청을 공용 기본 URL 과 일치시켜 요청의 호스트 이름을 기반으로 적절한 API 서비스로 라우팅합니다. 일치하는 첫 번째 서비스가 권한 부여에 사용됩니다.

경로 라우팅 기능을 사용하면 여러 서비스에서 동일한 공용 기본 URL 을 사용할 수 있으며 요청 경로를 사용하여 요청을 라우팅할 수 있습니다. 이 기능을 활성화하려면 APICAST_PATH_ROUTING 환경 변수를 true 또는 1 로 설정합니다. 활성화된 경우 APIcast는 호스트 이름과 경로를 모두 기반으로 들어오는 요청을 서비스에 매핑합니다.

이 기능은 동일한 공용 기본 URL 을 사용하여 하나의 게이트웨이를 통해 다른 도메인에서 호스팅되는 여러 백엔드 서비스를 노출하려는 경우 사용할 수 있습니다. 이를 위해 각 API 백엔드(예: 개인 기본 URL)에 대해 여러 API 서비스를 구성하고 경로 라우팅 기능을 활성화할 수 있습니다.

예를 들어 다음과 같은 방식으로 세 가지 서비스가 구성되어 있습니다.

  • Service A Public Base URL: api.example.com 매핑 규칙: /a
  • Service B Public Base URL: api2.example.com 매핑 규칙: /b
  • Service C Public Base URL: api.example.com 매핑 규칙: /c

경로 라우팅(APICAST_PATH_ROUTING=false)이 비활성화 되면 api.example.com 에 대한 모든 호출이 서비스 A와 일치하려고 합니다. 따라서 api.example.com/c 를 호출하고 api.example.com/b"No Mapping Rule matching" 오류와 함께 실패합니다.

경로 라우팅이 활성화된 경우(APICAST_PATH_ROUTING=true) 호출은 호스트와 경로와 일치합니다. 그래서:

  • api.example.com/a 는 서비스 A로 라우팅됩니다.
  • api.example.com/c 는 서비스 C로 라우팅됩니다
  • api.example.com/b 는 "조정 규칙 일치하지 않음" 오류로 인해 실패합니다. 즉, Public Base URL 이 일치하지 않기 때문에 Service B와 일치하지 않습니다.

경로 라우팅을 사용하는 경우 동일한 공용 기본 URL 을 사용하는 다양한 서비스의 매핑 규칙 사이에 충돌이 없는지 확인해야 합니다. 예를 들어 메서드 + 경로 패턴의 조합은 하나의 서비스에만 사용됩니다.