70 lines
1.7 KiB
Dart
70 lines
1.7 KiB
Dart
import 'package:angel3_container_generator/angel3_container_generator.dart';
|
|
import 'package:angel3_framework/angel3_framework.dart';
|
|
import 'package:angel3_framework/http.dart';
|
|
|
|
import 'example3_controller.reflectable.dart';
|
|
|
|
@contained
|
|
@Expose('/controller', method: 'GET')
|
|
class MyController extends Controller {
|
|
@Expose('/')
|
|
Order order(Order singleton) => singleton;
|
|
|
|
//Todo todo(Todo singleton) => singleton;
|
|
}
|
|
|
|
class Todo extends Model {
|
|
String? text;
|
|
String? over;
|
|
|
|
Todo({this.text, this.over});
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'text': text,
|
|
'over': over,
|
|
};
|
|
}
|
|
}
|
|
|
|
class FoodItem {
|
|
final String name;
|
|
final num price;
|
|
|
|
FoodItem(this.name, this.price);
|
|
}
|
|
|
|
class Order {
|
|
FoodItem item;
|
|
|
|
String? get name => item.name;
|
|
|
|
Order(this.item);
|
|
}
|
|
|
|
void main() async {
|
|
//var reflector = const GeneratedReflector();
|
|
//Container container = Container(reflector);
|
|
//container.registerSingleton<SalesController>(SalesController());
|
|
|
|
// Using GeneratedReflector
|
|
initializeReflectable();
|
|
var app = Angel(reflector: GeneratedReflector());
|
|
|
|
// Using MirrorReflector
|
|
//var app = Angel(reflector: MirrorsReflector());
|
|
//await app.configure(MyController().configureServer);
|
|
|
|
// My Controller
|
|
//app.container.registerSingleton<MyController>(MyController());
|
|
//await app.mountController<MyController>();
|
|
await app.configure(MyController().configureServer);
|
|
|
|
// 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}");
|
|
}
|