- Airplanes.live / OpenSky @Scheduled 수집기 (60초 주기) - 인메모리 캐시 + PostGIS DB 적재 (향후 리플레이용) - GET /api/aircraft?region=iran|korea REST API - 프론트엔드 LIVE→백엔드 API, REPLAY→샘플 전용 - JDK 17→21 업그레이드 (pom, sdkmanrc, CI/CD, systemd)
22 lines
513 B
TypeScript
22 lines
513 B
TypeScript
import type { Aircraft } from '../types';
|
|
|
|
interface AircraftApiResponse {
|
|
region: string;
|
|
count: number;
|
|
lastUpdated: number;
|
|
aircraft: Aircraft[];
|
|
}
|
|
|
|
export async function fetchAircraftFromBackend(region: 'iran' | 'korea'): Promise<Aircraft[]> {
|
|
try {
|
|
const res = await fetch(`/api/kcg/aircraft?region=${region}`, {
|
|
credentials: 'include',
|
|
});
|
|
if (!res.ok) return [];
|
|
const data: AircraftApiResponse = await res.json();
|
|
return data.aircraft;
|
|
} catch {
|
|
return [];
|
|
}
|
|
}
|