RouterInjectable typedef

RouterInjectable = InjectableIn<RelicRouter>

A contract for modular route registration in Relic applications.

Classes that know how to setup Handlers or Middleware on a RelicRouter should implement this.

This is typically used by modules that setup multiple different but related routes.

Example:

class CrudModule<T> implements RouterInjectable {
  @override
  void injectIn(final RelicRouter router) {
    final group = router.group('/:id/');
    group
      ..post('/', create)
      ..get('/', read)
      ..anyOf({Method.put, Method.patch}, '/', update)
      ..delete('/', delete);
  }

  Response create(final Request req) { }
  Response read(final Request req) { }
  Response update(final Request req) { }
  Response delete(final Request req) { }
}

Implementation

typedef RouterInjectable = InjectableIn<RelicRouter>;