register method
Generic registration of a request handler for any HTTP method.
Register a request handler
when a method
request asks for path
.
Convenience methods for common methods exist: get, post, put, patch, delete. They simply invoke this method with corresponding values for the HTTP method.
Implementation
void register(String method, String path, RequestHandler handler) {
_logServer.config("register: $method $path");
if (method == null) {
throw new ArgumentError.notNull("method");
}
if (method.isEmpty) {
throw new ArgumentError.value(method, "method", "Empty string");
}
if (path == null) {
throw new ArgumentError.notNull('path');
}
if (!path.startsWith('~/')) {
throw new ArgumentError.value(path, 'path', 'does not start with "~/"');
}
if (handler == null) {
throw new ArgumentError.notNull("handler");
}
// Get the list of rules for the method
var methodRules = _rulesByMethod[method];
if (methodRules == null) {
methodRules = []; // new List<ServerRule>();
_rulesByMethod[method] = methodRules;
}
// Append a new pattern to the list of rules
methodRules.add(new ServerRule(path, handler));
}