Aplicaciones
Los programas de PageTop se denominan Aplicaciones. La aplicación PageTop más simple luce así:
use pagetop::prelude::*; #[pagetop::main] async fn main() -> std::io::Result<()> { Application::new().run()?.await }
La línea use pagetop::prelude::*;
sirve para importar la API esencial de PageTop. Por brevedad, esta guía podría omitirla en ejemplos posteriores.
Ahora sólo tienes que copiar el código anterior en tu archivo main.rs
y desde la carpeta del proyecto ejecutar:
cargo run
Si todo ha ido bien, después de compilar el código se ejecutará la aplicación. El terminal quedará en espera mostrando el nombre de la aplicación y lema predefinidos.
Ahora abre un navegador en el mismo equipo y escribe http://localhost:8088
en la barra de direcciones. Y ya está, ¡la página de presentación de PageTop te dará la bienvenida!
Sin embargo, aún no hemos indicado a nuestra aplicación qué hacer. Si quieres saber más sobre el funcionamiento interno de las aplicaciones, continúa leyendo. De lo contrario, puedes ir a la siguiente página para aprender cómo añadir lógica a nuestra aplicación.
¿Qué hace una aplicación?
Como hemos visto, primero debemos instanciar la Aplicación. Podemos hacerlo con dos métodos, new()
, que hemos usado en el ejemplo anterior, o prepare()
, que veremos en la siguiente página. Ambos se encargan de iniciar los diferentes subsistemas de PageTop por este orden:
-
Inicializa la traza de mensajes de registro y eventos.
-
Valida el identificador global de idioma.
-
Conecta con la base de datos.
-
Registra los paquetes de la aplicación según sus dependencias internas.
-
Registra las acciones de los paquetes.
-
Inicializa los paquetes.
-
Ejecuta las actualizaciones pendientes de la base de datos.
Pero no ejecuta la aplicación. Para eso se usa el método run()
, que arranca el servidor web para empezar a responder las peticiones desde cualquier navegador.
Hablaremos más de todos estos subsistemas en próximas páginas. Mientras tanto, ¡vamos a añadir algo de lógica a nuestra aplicación creando un paquete con un nuevo servicio web!