Controllers Gids
Welkom bij de Finch Controllers Gids! Deze gids legt uit hoe je controllers maakt en gebruikt in je Finch-applicatie. Of je nu een ervaren ontwikkelaar bent of net begint, Finch biedt handige hulpmiddelen om server-side verzoekverwerking te organiseren.
Wat is een Controller?
Een controller in Finch is een klasse die HTTP-verzoeken afhandelt. Het is verantwoordelijk voor het verwerken van de request en het genereren van een response. Controllers worden gebruikt om gerelateerde requestlogica te organiseren en kunnen aan routes worden gekoppeld om binnenkomende HTTP-verzoeken te verwerken.
Een Controller maken
Om een controller te maken, breid je de Controller klasse uit. Hieronder een voorbeeld van een eenvoudige controller:
import 'package:finch/finch_route.dart';
class MyController extends Controller {
MyController();
@override
Future<String> index() async {
return rq.renderString(text: 'Hello World');
}
}
In dit voorbeeld hebben we een controller genaamd MyController aangemaakt die Controller uitbreidt. We hebben de index methode overschreven om het verzoek af te handelen en een response te genereren. De index methode wordt aangeroepen wanneer een request naar de route die aan deze controller gekoppeld is binnenkomt.
Een Controller gebruiken
Om een controller te gebruiken, koppel je deze aan een route. Je doet dit door de controller eigenschap van FinchRoute in te stellen. Hieronder een voorbeeld van het gebruik van MyController:
FinchRoute(
path: '/',
controller: MyController(),
);
In dit voorbeeld definieer je een route voor de root (/) en koppel je MyController. Wanneer een verzoek naar de root wordt gedaan, wordt de index methode van MyController aangeroepen om het verzoek te verwerken en een response te genereren.
Opmerking:
De index functie is de standaardfunctie voor een controller. Je kunt echter elke naam gebruiken en deze in de routedefinitie aanroepen. Bijvoorbeeld:
class MyController extends Controller {
MyController();
Future<String> myFunction() async {
return rq.renderString(text: 'Hello World');
}
}
FinchRoute(
path: '/',
controller: MyController(),
index: MyController().myFunction,
);