HTTP Requests Gids
Welkom bij de Finch HTTP Requests Gids! Deze gids legt uit hoe je HTTP-verzoeken verwerkt in je Finch-applicatie. Of je nu een ervaren ontwikkelaar bent of net begint, Finch biedt handige hulpmiddelen om server-side webapplicatieontwikkeling te vereenvoudigen.
Request Object
Het Request-object wordt gebruikt om HTTP-verzoeken te verwerken in je Finch-applicatie. Het bevat alle benodigde eigenschappen om een verzoek te verwerken. Hier is een voorbeeld van hoe je het gebruikt:
app.get(
path: '/',
index: (rq) async {
return rq.renderString(text: 'Hello World');
},
);
In Finch-applicaties heet de Request-variabele rq. Je kunt deze variabele gebruiken om toegang te krijgen tot alle eigenschappen van het Request object.
Eigenschappen:
httpRequest: HetHttpRequest-object van het verzoek.session: HetHttpSession-object van het verzoek.cookies: De lijst met cookies van het verzoek.stream: De stream van het verzoek.uri: De URI van het verzoek.response: De response van het verzoek.method: De HTTP-methode van het verzoek.isPost: Controleert of het verzoek een POST-verzoek is.- enz. (zie de
Requestklasse voor meer eigenschappen)
Verzoekgegevens lezen
Finch biedt een eenvoudige manier om verzoekgegevens te lezen. Je kunt de get<T>(key)-methode gebruiken om data uit het verzoek te lezen. Hier is een voorbeeld:
app.get(
path: '/',
index: (rq) async {
var name = rq.get<String>('name', def: 'World');
return rq.renderString(text: 'Hello $name');
},
);
parameters
Parameters zijn gegevens die in de URL zijn opgenomen of tijdens de verwerking aan het verzoek worden toegevoegd. Je kunt ze toevoegen met addParam en uitlezen met getParam. Bijvoorbeeld, als je een URL hebt als /users/{id}, kun je de id parameter uitlezen met getParam('id').
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
return rq.renderString(text: 'User ID: $id');
},
);
parameters instellen
Je kunt parameters instellen met behulp van de addParam methode. Dit is handig wanneer je extra data wilt toevoegen aan het request-object. Bijvoorbeeld: nadat je een gebruiker hebt geauthenticeerd, kun je het gebruikersobject aan het request toevoegen.
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
var user = await User.findById(id);
rq.addParam('user', user);
return rq.renderString(text: 'User ID: $id');
},
);
Opmerking:
Met addParam kun je elk type data aan het request-object toevoegen. Je kunt deze parameters ook gebruiken in templates, bijvoorbeeld {{ user.name }}.
De Future-waarden mogen niet rechtstreeks in templates worden geplaatst; wacht op de data met async en await.
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
var user = await User.findById(id);
rq.addParam('user', user);
return rq.renderString(text: 'User ID: $id');
},
);