add method

void add(
  1. String verb,
  2. String route,
  3. Function handler
)

Add handler for verb requests to route.

If verb is GET the handler will also be called for HEAD requests matching route. This is because handling GET requests without handling HEAD is always wrong. To explicitely implement a HEAD handler it must be registered before the GET handler.

Implementation

void add(String verb, String route, Function handler) {
  if (!isHttpMethod(verb)) {
    throw ArgumentError.value(verb, 'verb', 'expected a valid HTTP method');
  }
  verb = verb.toUpperCase();

  if (verb == 'GET') {
    // Handling in a 'GET' request without handling a 'HEAD' request is always
    // wrong, thus, we add a default implementation that discards the body.
    _routes.add(RouterEntry('HEAD', route, handler, middleware: _removeBody));
  }
  _routes.add(RouterEntry(verb, route, handler));
}