연동 아키텍처

ONDA API 시스템 구조와 데이터 흐름을 설명합니다

연동 아키텍처#

ONDA Channel API의 전체 시스템 구조, 계층, 데이터 흐름, 인증 방식을 이해하면 효율적인 연동 설계가 가능합니다.

시스템 구조 개요#

ONDA는 **콘텐츠(Content)**와 트랜잭션(Transaction) 데이터를 분리하여 제공합니다. 콘텐츠는 S3 벌크 다운로드로, 가격/재고는 실시간 API로 조회합니다.


계층 구조#

ONDA 플랫폼은 4단계 계층 구조로 관리됩니다:

Channel ID (판매 채널)
    └── Channel Type (등급: Standard / Premium / Enterprise)
        └── Developer Account (개발자 계정)
            └── App ID (등록된 앱)

1. Channel ID (판매 채널)#

  • 파트너사가 운영하는 실제 판매 채널을 의미합니다.
  • 예: "ABC 여행사 웹사이트", "XYZ 슈퍼앱"
  • 각 채널은 고유한 channel_id를 부여받습니다.

2. Channel Type (등급)#

  • Standard: 기본 기능 (월 1,000건 예약)
  • Premium: 고급 기능 + 우선 지원 (월 10,000건 예약)
  • Enterprise: 전용 인프라 + SLA 보장 (무제한)

3. Developer Account#

  • ONDA 개발자센터에 가입한 계정
  • 여러 앱을 등록하고 관리할 수 있습니다.
  • API 키 발급 및 사용량 모니터링

4. App ID#

  • OAuth 2.0으로 등록된 애플리케이션
  • 각 앱은 client_id, client_secret 발급
  • Sandbox / Production 환경별 별도 앱 등록 권장

개발 단계에서는 Sandbox 앱으로 테스트하고, 운영 준비가 완료되면 Production 앱을 등록하세요.


데이터 흐름#

ONDA API는 **콘텐츠(Content)**와 트랜잭션(Transaction) 데이터를 분리하여 최적화된 성능을 제공합니다.

콘텐츠 데이터 (S3 벌크 다운로드)#

업데이트 주기: 하루 1회 (UTC 00:00 기준)

포함 정보:

  • 숙소 메타데이터 (이름, 주소, 설명, 편의시설)
  • 객실 타입 (Room Types)
  • 이미지 URL
  • 정책 (취소 정책, 체크인/아웃 시간)

다운로드 방식:

1. ONDA가 매일 최신 데이터를 S3 버킷에 업로드
2. 파트너사가 S3 API로 ZIP 파일 다운로드
3. 로컬 DB에 임포트 (검색 인덱스 구축)

콘텐츠 데이터는 검색 속도 향상을 위해 로컬 DB에 저장하는 것을 권장합니다. 실시간 API 호출로 콘텐츠를 조회하면 응답 시간이 느려질 수 있습니다.

트랜잭션 데이터 (실시간 API)#

호출 시점: 사용자 요청 시마다

포함 정보:

  • 실시간 가격 (날짜별 요금)
  • 재고 상태 (Availability)
  • 예약 확정 정보
  • 예약 상태 변경

호출 흐름:

1. 사용자가 검색 조건 입력 (날짜, 인원, 지역)
2. 파트너사 서버가 ONDA Search API 호출
3. ONDA가 실시간 가격/재고 조회 후 응답
4. 파트너사가 결과를 사용자에게 표시

인증 흐름#

ONDA API는 OAuth 2.0 Client Credentials 방식으로 인증합니다.

1. 앱 등록 (개발자센터)#

1. ONDA 개발자센터 로그인
2. "앱 생성" 클릭
3. 앱 정보 입력 (이름, 환경, Redirect URI)
4. client_id, client_secret 발급받기

2. Access Token 발급#

응답:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "channel:read channel:write"
}

3. API 호출#

Access Token은 1시간 유효합니다. 만료 전에 새로운 토큰을 발급받거나, Refresh Token을 사용하여 갱신하세요.


API 호출 흐름 (전체)#

사용자가 숙소를 검색하고 예약하는 전체 플로우입니다:


환경 구분#

ONDA는 개발과 운영 환경을 분리하여 안전한 테스트를 지원합니다.

환경Base URL용도
Sandboxhttps://sandbox-api.onda.me개발/테스트 (더미 데이터)
Productionhttps://api.onda.me실제 서비스 (실제 예약)

Sandbox 환경에서는 실제 예약이 생성되지 않습니다. 결제도 발생하지 않으며, 테스트용 카드 번호를 사용합니다.

Sandbox 특징#

  • 무료 사용 (API 호출 제한 없음)
  • 더미 숙소 데이터 (약 100개)
  • 예약 즉시 확정 (실제 호텔 연동 없음)
  • 웹훅 테스트 가능

Production 특징#

  • 실제 50,000+ 숙소 데이터
  • 실시간 재고/가격 확인
  • 실제 예약 및 결제 처리
  • SLA 보장 (Enterprise)

보안 고려사항#

1. API Key 관리#

  • client_secret과 API Key는 서버 사이드에서만 사용
  • 프론트엔드(JavaScript)에 노출 금지
  • 환경 변수로 관리 (.env 파일)

2. HTTPS 통신#

  • 모든 API 호출은 HTTPS로만 가능
  • HTTP 요청은 자동으로 거부됩니다.

3. Rate Limiting#

  • 채널 등급별 API 호출 제한
    • Standard: 100 req/min
    • Premium: 500 req/min
    • Enterprise: 협의

4. IP 화이트리스트 (옵션)#

  • Enterprise 고객은 특정 IP에서만 API 호출 가능하도록 설정 가능

다음 단계#

인증 설정하기

OAuth 2.0 인증 가이드에서 앱을 등록하고 Access Token을 발급받으세요.

첫 API 호출하기

빠른 시작 가이드로 실제 검색 요청을 보내보세요.

콘텐츠 동기화하기

콘텐츠 가이드에서 S3 벌크 다운로드 방법을 확인하세요.

예약 처리하기

예약 가이드로 예약 생성 및 관리 방법을 학습하세요.

추가 질문이나 기술 지원이 필요하면 support@onda.me로 문의하세요.