feat: add Swagger UI docs at /api_info endpoint

This commit is contained in:
dmit.b
2026-05-16 11:58:26 +03:00
parent 623e6037b6
commit 805c358ead
12 changed files with 495 additions and 4 deletions
+10
View File
@@ -7,6 +7,7 @@ import '../database/database_provider.dart';
import '../middleware/auth_middleware.dart';
import '../middleware/request_logger.dart';
import 'dart:convert';
import 'dart:io';
class AuthRoutes {
final DatabaseProvider database;
@@ -18,6 +19,7 @@ class AuthRoutes {
router.post('/login', _login);
router.post('/reg', _register);
router.get('/watch', AuthMiddleware(_watch).call);
router.get('/api_info', _apiInfo);
return router;
}
@@ -112,4 +114,12 @@ class AuthRoutes {
logRequest(method: 'GET', url: '/watch', status: 200, duration: stopwatch.elapsed, responseHeaders: response.headers);
return response;
}
Future<Response> _apiInfo(Request request) async {
final swaggerDir = Directory('web/swagger');
final swaggerFile = File('${swaggerDir.path}/index.html');
final html = await swaggerFile.readAsString();
final response = Response(200, body: html, headers: {'Content-Type': 'text/html'});
return response;
}
}