feat: Add Swagger UI documentation di root URL
This commit is contained in:
@@ -19,6 +19,47 @@ AppConfig::loadEnv(__DIR__ . '/..');
|
||||
// Bootstrap application
|
||||
$app = AppBootstrap::create();
|
||||
|
||||
// Root route - redirect to docs
|
||||
$app->get('/', function ($request, $response) {
|
||||
return $response
|
||||
->withHeader('Location', '/docs')
|
||||
->withStatus(302);
|
||||
});
|
||||
|
||||
// Docs route - serve Swagger UI
|
||||
$app->get('/docs', function ($request, $response) {
|
||||
$docsPath = __DIR__ . '/docs/index.html';
|
||||
|
||||
if (!file_exists($docsPath)) {
|
||||
return $response
|
||||
->withStatus(404)
|
||||
->withHeader('Content-Type', 'text/html')
|
||||
->getBody()->write('<h1>Documentation not found</h1>');
|
||||
}
|
||||
|
||||
$html = file_get_contents($docsPath);
|
||||
$response->getBody()->write($html);
|
||||
|
||||
return $response->withHeader('Content-Type', 'text/html');
|
||||
});
|
||||
|
||||
// Serve OpenAPI JSON
|
||||
$app->get('/docs/openapi.json', function ($request, $response) {
|
||||
$openApiPath = __DIR__ . '/docs/openapi.json';
|
||||
|
||||
if (!file_exists($openApiPath)) {
|
||||
return $response
|
||||
->withStatus(404)
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->getBody()->write(json_encode(['error' => 'OpenAPI spec not found']));
|
||||
}
|
||||
|
||||
$json = file_get_contents($openApiPath);
|
||||
$response->getBody()->write($json);
|
||||
|
||||
return $response->withHeader('Content-Type', 'application/json');
|
||||
});
|
||||
|
||||
// Register module routes
|
||||
HealthRoutes::register($app);
|
||||
AuthRoutes::register($app);
|
||||
|
||||
Reference in New Issue
Block a user