2024-12-20-API-라우팅-가이드.md 4.7 KB

API 라우팅 가이드

작성일: 2024-12-20
목적: 프론트엔드에서 사용 가능한 모든 API 엔드포인트 정리

🎯 사용 가능한 API 엔드포인트

1. 벤더사 관련 API

인플루언서 요청 목록 조회

POST /api/vendor-influencer/requests
POST /api/vendor/influencer-requests  
POST /api/v2/vendor/influencer-requests

승인/거절 처리

POST /api/vendor-influencer/process-request
POST /api/vendor/process-request
POST /api/v2/vendor/process-request
POST /vendor-influencer/process-request

파트너십 해지

POST /api/vendor-influencer/terminate
POST /api/v2/vendor/terminate

상태 통계

POST /api/vendor-influencer/status-stats
POST /api/v2/vendor/status-stats

2. 인플루언서 관련 API

벤더사 검색

POST /api/vendor-influencer/search-vendors
POST /api/influencer/search-vendors
POST /api/v2/influencer/search-vendors

승인 요청 생성

POST /api/vendor-influencer/create-request
POST /api/influencer/create-request
POST /api/v2/influencer/create-request

재승인 요청

POST /api/vendor-influencer/reapply-request
POST /api/influencer/reapply-request
POST /api/v2/influencer/reapply-request
POST /vendor-influencer/reapply-request

내 파트너십 목록

POST /api/vendor-influencer/my-partnerships
POST /api/influencer/my-partnerships
POST /api/v2/influencer/my-partnerships

파트너십 해지

POST /api/vendor-influencer/terminate
POST /api/influencer/terminate
POST /api/v2/influencer/terminate

🚀 권장 사용법

1. 우선순위 (권장 순서)

  1. V2 API (가장 안정적)

    /api/v2/vendor/...
    /api/v2/influencer/...
    
  2. 호환성 API (기존 코드용)

    /api/vendor-influencer/...
    /api/vendor/...
    /api/influencer/...
    
  3. 레거시 API (점진적 제거 예정)

    /vendor-influencer/...
    

2. 요청 예시

벤더사: 인플루언서 요청 목록 조회

// 방법 1: V2 API (권장)
POST /api/v2/vendor/influencer-requests
{
  "vendorSeq": 123,
  "status": "PENDING",
  "page": 1,
  "size": 20
}

// 방법 2: 호환성 API
POST /api/vendor-influencer/requests
{
  "vendorSeq": 123,
  "status": "PENDING",
  "page": 1,
  "size": 20
}

벤더사: 승인/거절 처리

// 방법 1: V2 API (권장)
POST /api/v2/vendor/process-request
{
  "mappingSeq": 456,
  "action": "approve",  // 또는 "reject"
  "processedBy": 789,
  "responseMessage": "승인합니다"
}

// 방법 2: 호환성 API
POST /api/vendor-influencer/process-request
{
  "mappingSeq": 456,
  "action": "approve",
  "processedBy": 789,
  "responseMessage": "승인합니다"
}

인플루언서: 재승인 요청

// 방법 1: V2 API (권장)
POST /api/v2/influencer/reapply-request
{
  "vendorSeq": 123,
  "influencerSeq": 456,
  "requestMessage": "재승인 요청합니다",
  "requestedBy": 456
}

// 방법 2: 호환성 API
POST /api/vendor-influencer/reapply-request
{
  "vendorSeq": 123,
  "influencerSeq": 456,
  "requestMessage": "재승인 요청합니다",
  "requestedBy": 456
}

🔧 응답 형식

성공 응답

{
  "success": true,
  "message": "요청이 성공적으로 처리되었습니다.",
  "data": {
    // 응답 데이터
  }
}

실패 응답

{
  "success": false,
  "message": "오류 메시지",
  "error": "상세 오류 정보"
}

🚨 주의사항

1. 히스토리 테이블 기반 (V2)

  • 모든 상태 변경이 이력으로 기록됨
  • 중복 키 오류 완전 해결
  • 트랜잭션 기반 안전한 처리

2. 호환성 라우팅

  • 기존 프론트엔드 코드와 호환
  • V2 컨트롤러로 자동 연결
  • 점진적 이전 가능

3. 파라미터 검증

  • 모든 필수 파라미터 검증
  • action 값 검증 ('approve', 'reject')
  • 상태 전환 규칙 검증

📈 마이그레이션 가이드

기존 코드 → V2 API 이전

1단계: 엔드포인트 변경

// 기존
const endpoint = '/api/vendor-influencer/requests';

// 변경
const endpoint = '/api/v2/vendor/influencer-requests';

2단계: 응답 필드 확인

// 기존
vendor.PARTNERSHIP_STATUS = response.STATUS;

// 변경 (V2)
vendor.PARTNERSHIP_STATUS = response.CURRENT_STATUS;
vendor.PARTNERSHIP_MESSAGE = response.CURRENT_STATUS_MESSAGE;

3단계: 테스트 및 검증

// V2 API 응답 확인
console.log('현재 상태:', response.CURRENT_STATUS);
console.log('상태 메시지:', response.CURRENT_STATUS_MESSAGE);
console.log('상태 변경일:', response.STATUS_CHANGED_DATE);

✅ 모든 API 엔드포인트가 정상적으로 작동합니다!