Files
usbcheck.it/api/index.php
2025-11-30 03:28:17 +01:00

60 lines
1.5 KiB
PHP

<?php
// /api/index.php
// Optional: zentrale Config laden (wenn du magst)
declare(strict_types=1);
$apibasedir = require_once $_SERVER['DOCUMENT_ROOT'];
require $apibasedir. '/../config/fileload.php';
// Basis-Header (CORS, JSON)
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(204);
exit;
}
// Pfad aus der URL holen
$uri = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH);
$path = rtrim($uri, '/');
if ($path === '') {
$path = '/';
}
// Root-Info (optional)
if ($path === '/') {
echo json_encode([
'ok' => true,
'service' => 'usbcheck-api',
'version' => 1,
'endpoints' => [
'/v1/quickcheck',
'/v1/browser.quick.test',
'/internal/* (geschützt)',
],
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
exit;
}
// Routing nach Bereich
if (str_starts_with($path, '/v1/')) {
require_once $apibasedir.'/router/router.v1.php';
exit;
}
if (str_starts_with($path, '/internal/')) {
require_once $apibasedir. '/router/router.internal.php';
exit;
}
// Fallback: unbekannter Bereich
http_response_code(404);
echo json_encode([
'ok' => false,
'error' => 'Unknown API area',
'path' => $path,
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);