Files
easy_dart_module/lib/base/webserver/WebServer.dart
2025-06-16 17:11:53 +08:00

79 lines
1.6 KiB
Dart

import 'package:EasyDartModule/EasyDartModule.dart';
abstract class WebServer {
static late WebServer _webServer;
static WebServer getInstance() {
return _webServer;
}
static void setInstance(WebServer server) {
_webServer = server;
}
void start(int port,
{Response? Function(Request, Map<String, dynamic>)? interceptor,
TokenResult Function(String?)? tokenCheck});
void stop();
void addHandler(handler);
}
enum HttpMethod {
GET,
POST,
PUT,
DELETE,
ALL,
WS,
;
static HttpMethod valueOf(String type) {
var tmp = HttpMethod.values.where((t) => t.name == type).toList();
if (tmp.isEmpty) {
return HttpMethod.ALL;
}
return tmp[0];
}
}
enum HttpResponseType {
HTML("text/html; charset=utf-8"),
TEXT("text/plain; charset=utf-8"),
XML("text/xml; charset=utf-8"),
JSON("application/json; charset=utf-8"),
BINARY("application/octet-stream"),
;
final String type;
const HttpResponseType(this.type);
static HttpResponseType valueOf(String type) {
var tmp = HttpResponseType.values.where((t) => t.type == type).toList();
if (tmp.isEmpty) {
return HttpResponseType.JSON;
}
return tmp[0];
}
}
class RequestMapping {
final HttpMethod method;
final String path;
final HttpResponseType responseType;
final bool auth;
const RequestMapping(
{this.method = HttpMethod.ALL,
required this.path,
this.auth = true,
this.responseType = HttpResponseType.JSON});
}
class TokenResult {
bool status;
String? errMsg;
Map<String, dynamic>? payload;
TokenResult({required this.status, this.errMsg, this.payload});
}