본문으로 건너뛰기

3.2. 라우팅 룰 관리 및 라우팅 처리

3.2.1. 라우팅 룰 관리 구조

API 게이트웨이는 데이터허브 서비스로 전달할 라우팅 룰과 서비스 정보를 관리합니다. 관리 API를 통해 라우팅 룰 또는 데이터허브 서비스 정보가 변경된 경우, 해당 API 요청을 수신한 API 게이트웨이는 정보 변경 이벤트를 다른 연계 API 게이트웨이에 전파합니다. 이벤트를 전달받은 API 게이트웨이는 DB를 통해 정보를 갱신하고, 최종적으로 구성된 모든 API 게이트웨이가 최신 라우팅 룰과 데이터허브 서비스 정보로 갱신됩니다.

API 게이트웨이 라우팅 룰 관리 구성 흐름은 아래와 같습니다.

API 게이트웨이 라우팅 룰 관리 구성

  1. API 게이트웨이 구동 시 DB에서 라우팅 룰 정보를 수신하고 라우팅 룰을 설정한다.
  2. 라우팅 룰 또는 데이터허브 서비스에 관한 생성/수정/삭제 이벤트 발생 시 해당 요청을 DB에 반영한다.
  3. DB반영 후, Eureka를 통해 API 게이트웨이 목록을 수신하여 모든 API 게이트웨이에 정보 갱신 이벤트를 전파한다.
  4. 갱신 이벤트를 전파받은 API 게이트웨이는 DB를 통해 최신 라우팅 룰 정보를 반영한다.

3.2.2. 라우팅 룰 기반 API 라우팅 처리

데이터허브 시스템 외부 어플리케이션이 API 게이트웨이를 통해 데이터허브 서비스 API를 호출할 경우, 해당 API에 적용된 라우팅 룰을 기반으로 요청이 전달됩니다.

라우팅 룰은 API 호출에 사용되는 Request Path, Request Method, Query String, Request Header 등의 HTTP Request 매개변수를 활용한 단일 또는 다중 조건으로 구성됩니다. 요청에 해당하는 라우팅 룰이 없을 시 적절한 오류 응답이 가능하도록 합니다.

라우팅 룰 구성 예시는 아래와 같습니다.

라우팅 룰 기반 라우팅 예시

  1. 라우팅 룰을 통해 매칭 된 Request Path & Request Method & Request Header 다중 조합 룰 기반 데이터허브 서비스 라우팅
  2. 라우팅 룰을 통해 매칭 된 Request Header 룰 기반 데이터허브 서비스 라우팅
  3. 라우팅 룰을 통해 매칭 된 Request Query 룰 기반 데이터허브 서비스 라우팅