feat: add Swagger UI docs at /api_info endpoint
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user