register method

void register (String method, String path, RequestHandler handler)

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));
}