/** * Test Registry API Proxy * * Leitet Anfragen an das Python-Backend (Port 8000) weiter. * Vermeidet CORS-Probleme und ermoeglicht Server-Side Rendering. */ import { NextRequest, NextResponse } from 'next/server' const BACKEND_URL = process.env.BACKEND_URL || 'http://localhost:8000' export async function GET( request: NextRequest, { params }: { params: Promise<{ path: string[] }> } ) { const { path } = await params const pathStr = path.join('/') const url = new URL(request.url) const queryString = url.search try { const response = await fetch(`${BACKEND_URL}/api/tests/${pathStr}${queryString}`, { method: 'GET', headers: { 'Content-Type': 'application/json', }, }) const data = await response.json() return NextResponse.json(data, { status: response.status }) } catch (error) { console.error('Test Registry API proxy error:', error) return NextResponse.json( { error: 'Backend nicht erreichbar', demo: true }, { status: 503 } ) } } export async function POST( request: NextRequest, { params }: { params: Promise<{ path: string[] }> } ) { const { path } = await params const pathStr = path.join('/') try { let body = null const contentType = request.headers.get('content-type') if (contentType?.includes('application/json')) { try { body = await request.json() } catch { // Empty body is OK for some endpoints } } const response = await fetch(`${BACKEND_URL}/api/tests/${pathStr}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: body ? JSON.stringify(body) : undefined, }) const data = await response.json() return NextResponse.json(data, { status: response.status }) } catch (error) { console.error('Test Registry API proxy error:', error) return NextResponse.json( { error: 'Backend nicht erreichbar', demo: true }, { status: 503 } ) } }