""" Supabase REST API 설정 """ import os from dotenv import load_dotenv try: from supabase import Client, create_client except ImportError: create_client = None Client = None # 환경 변수 로드 load_dotenv() # Supabase 연결 설정 SUPABASE_URL = os.getenv("SUPABASE_URL") SUPABASE_ANON_KEY = os.getenv("SUPABASE_ANON_KEY") # SUPABASE_KEY도 지원 (호환성) if not SUPABASE_ANON_KEY: SUPABASE_ANON_KEY = os.getenv("SUPABASE_KEY") def check_supabase_health() -> bool: """ Supabase 연결 상태 확인 Returns: bool: Supabase 사용 가능 여부 """ if not SUPABASE_URL: return False try: import requests # 여러 엔드포인트 시도 health_endpoints = [ "/rest/v1/", "/auth/v1/health", "/health" ] for endpoint in health_endpoints: try: health_url = f"{SUPABASE_URL}{endpoint}" response = requests.get(health_url, timeout=3) if response.status_code in [200, 301, 302, 404]: print(f"✅ Supabase 연결 확인: {endpoint}") return True except Exception: continue return False except Exception as e: print(f"⚠️ Supabase 헬스체크 실패: {e}") return False # Supabase 클라이언트 초기화 (REST API 사용) supabase_client: Client | None = None if SUPABASE_URL and SUPABASE_ANON_KEY and create_client: try: supabase_client = create_client(SUPABASE_URL, SUPABASE_ANON_KEY) print("✅ Supabase REST API 클라이언트 초기화 완료") # Supabase 연결 상태 확인 is_supabase = check_supabase_health() if is_supabase: print("✅ Supabase 연결 확인 완료") else: print("⚠️ Supabase 헬스체크 실패, REST API는 사용 가능합니다") except Exception as e: print(f"⚠️ Supabase REST API 클라이언트 초기화 실패: {e}") supabase_client = None else: print("⚠️ Supabase 환경 변수가 설정되지 않았습니다.") print(" SUPABASE_URL과 SUPABASE_ANON_KEY를 설정하세요.")