Saju API
사주 등록·수정·조회 및 오늘의 기운, 연운, 정통사주 관련 엔드포인트입니다.
엔드포인트 목록
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
| POST | /api/saju | 사주 등록 (오늘의 기운 함께 생성) | 필요 |
| GET | /api/saju/me | 내 사주 기본 정보 조회 | 필요 |
| PUT | /api/saju/me | 사주 수정 | 필요 |
| GET | /api/saju/me/traditional | 정통사주 조회 (8자·오행·대운) | 필요 |
| GET | /api/saju/me/daily | 오늘의 기운 조회 | 필요 |
| GET | /api/saju/me/year | 올해운세 조회 (비동기) | 필요 |
| GET | /api/saju/me/traditional-fortune | 정통사주풀이 연간 운세 조회 | 필요 |
| GET | /api/saju/me/compatibility/{partnerId} | 파트너와의 궁합 조회 (비동기) | 필요 |
| GET | /api/saju/me/zodiac-compatibility | 띠별 궁합 조회 | 필요 |
POST /api/saju
사주 8자를 계산하고 저장합니다. 오늘의 기운도 함께 생성됩니다.
처리 흐름:
- Ablecity → 사주 8자·오행·용신·격국 계산
- Ablecity → 오늘 기운 점수·요약 조회
- GPT → 일별 인사이트 생성 (기분·추천 행동 등)
saju_info+daily_energyDB 저장- 사주 + 오늘의 기운 통합 응답 반환
에러:
| 상황 | HTTP | 에러 코드 |
|---|---|---|
| 중복 등록 | 409 | SAJU_ALREADY_EXISTS |
| Ablecity 장애 | 502 | EXTERNAL_API_ERROR |
| GPT 오류 | 500 | LLM_ERROR |
GET /api/saju/me
이메일·닉네임·사주 입력값(생년월일·성별·음양력·도시)을 반환합니다. 사주 미등록 시 사주 필드는 null입니다.
PUT /api/saju/me
생년월일 등 변경 시 외부 API를 재호출하여 사주를 다시 계산합니다. 수정 시 오늘 날짜의 기운 캐시도 함께 삭제되어 다음 조회 시 새 사주 기준으로 재생성됩니다.
GET /api/saju/me/daily
오늘의 기운을 조회합니다. DB 캐시 히트 시 즉시 반환하고, 미스 시 Ablecity + GPT를 호출 후 저장합니다.
GET /api/saju/me/year
올해 연운을 조회합니다. Ablecity의 연산이 수 초~수십 초 소요되므로 비동기 웹훅 방식으로 처리합니다.
- 캐시 히트:
status: COMPLETE+ 데이터 반환 - 캐시 미스: Ablecity 비동기 요청 후 대기 → 완료 시
COMPLETE, 타임아웃 시PENDING반환
GET /api/saju/me/compatibility/{partnerId}
파트너와의 궁합을 조회합니다. 연운과 동일한 비동기 웹훅 방식으로 처리됩니다.
| 파라미터 | 위치 | 설명 |
|---|---|---|
partnerId | path | 파트너 ID |
에러:
| 상황 | HTTP | 에러 코드 |
|---|---|---|
| 사주 미등록 | 404 | SAJU_NOT_FOUND |
| 파트너 없음 | 404 | PARTNER_NOT_FOUND |