true, 'service' => 'usbcheck-api', 'version' => 1, 'endpoints' => [ '/v1/quickcheck', '/v1/browser.quick.test', '/internal/* (geschützt)', ], ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); exit; } /* |-------------------------------------------------------------------------- | Versioniertes Routing /v1/* |-------------------------------------------------------------------------- */ if (str_starts_with($path, '/v1/')) { // alles hinter /v1/ in Segmente zerlegen $rel = substr($path, strlen('/v1/')); // z.B. "browser.quick.test" $rel = ltrim($rel, '/'); $segments = $rel === '' ? [] : explode('/', $rel); require_once $apibasedir . '/router/router.v1.php'; router_v1_dispatch($segments); exit; } /* |-------------------------------------------------------------------------- | Internal API /internal/* |-------------------------------------------------------------------------- */ 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);