GraphQL Endpoint
모든 VPMS 서비스는 Apollo Federation을 통해 통합된 단일 GraphQL endpoint를 제공합니다.개발 환경 endpoint입니다. 프로덕션 환경에서는 다른 URL을 사용합니다.
공통 Headers
모든 GraphQL 요청에는 다음 헤더가 필요합니다.Content-Type
Authorization (선택적)
인증이 필요한 API의 경우 JWT 토큰을 포함해야 합니다.String
Bearer 방식의 JWT 토큰
- 형식:
Bearer {token} - SMS 인증을 통해 획득한 authHash 사용
- 일부 공개 API는 토큰 없이 호출 가능
전체 헤더 예제
요청 형식
GraphQL 요청은 JSON 객체로 구성되며, 다음 필드를 포함합니다.Query/Mutation
String
required
GraphQL 쿼리 또는 뮤테이션 문자열
Object
쿼리 변수 (key-value 형식)
String
실행할 작업 이름 (여러 작업이 있을 때 사용)
응답 형식
성공 응답
에러 응답
클라이언트 설정 예제
TypeScript (Apollo Client)
JavaScript (Fetch API)
cURL
Rate Limiting
API 요청에는 다음과 같은 제한이 적용됩니다.- 제한: 분당 60회
- 초과 시: 429 Too Many Requests
- SMS 발송: 10분당 5회 (번호당)
- 인증 확인: 1분당 10회 (번호당)
GraphQL Playground
개발 환경에서는 GraphQL Playground를 통해 API를 탐색할 수 있습니다.에러 코드
VPMS API에서 사용하는 공통 에러 코드입니다.Federation & Subgraphs
VPMS는 Apollo Federation을 사용하여 여러 서비스를 하나의 GraphQL 스키마로 통합합니다.서비스 구성
- Core Service: 예약, 객실, 인증, 요금 관리
- Booking Service: 공개 구매, 결제 처리
- User Service: 사용자, 인증, 검색
- Subscription Service: 구독, 알림
크로스 서비스 쿼리
Federation을 통해 여러 서비스의 데이터를 한 번의 쿼리로 가져올 수 있습니다.관련 문서
- Core Service API - 예약 및 객실 관리
- Booking Service API - 공개 구매 및 결제
- User Service API - 사용자 관리