Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación web / Cro 101 / Exercises / Una segunda ruta
Solución: Una segunda ruta
Aquí tienes una posible solución para la tarea.
Código
use Cro::HTTP::Router;
use Cro::HTTP::Server;
my $application = route {
get -> 'hello' {
content 'text/plain', 'Hello from Cro!';
}
get -> 'bye' {
content 'text/plain', 'Goodbye!';
}
}
my $server = Cro::HTTP::Server.new(
:host('127.0.0.1'),
:port(8080),
:application($application),
);
$server.start;
say 'Listening on http://127.0.0.1:8080 — press Ctrl-C to stop';
react {
whenever signal(SIGINT) {
$server.stop;
done;
}
}🦋 Puedes encontrar el código fuente en el archivo second-route.raku.
Salida
Goodbye!Comentarios
Un bloque
routepuede contener tantas rutas como quieras; cadagetatiende una ruta.Cro empareja la ruta de la petición con la ruta correcta, así que
/helloy/byedevuelven cada una su propia respuesta.Igual que en la página teórica,
.startretorna de inmediato, así que el bloquereactfinal mantiene vivo el programa hasta que pulsas Ctrl-C;whenever signal(SIGINT)para entonces el servidor y termina la reacción.