import 'package:angel3_container/mirrors.dart'; import 'package:angel3_framework/angel3_framework.dart'; import 'package:angel3_framework/http.dart'; @Expose('/controller', method: 'GET') class MyController extends Controller { @Expose('/', method: 'GET') Future<String> route1(RequestContext req, ResponseContext res) async { return "My route"; } } @Expose('/sales', middleware: [process1]) class SalesController extends Controller { @Expose('/', middleware: [process2]) Future<String> route1(RequestContext req, ResponseContext res) async { return "Sales route"; } } bool process1(RequestContext req, ResponseContext res) { res.write('Hello, '); return true; } bool process2(RequestContext req, ResponseContext res) { res.write('From Sales, '); return true; } void main() async { // Using Mirror Reflector var app = Angel(reflector: MirrorsReflector()); // My Controller app.container.registerSingleton<MyController>(MyController()); await app.mountController<MyController>(); // Sales Controller app.container.registerSingleton<SalesController>(SalesController()); await app.mountController<SalesController>(); var http = AngelHttp(app); var server = await http.startServer('localhost', 3000); print("Angel server listening at ${http.uri}"); }