3.2 KiB
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 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.
Extendiendo PageTop
La API de PageTop ofrece cuatro instrumentos esenciales para construir una aplicación:
- Extensiones, que añaden, amplían o personalizan funcionalidades interactuando con la API de PageTop o las APIs de extensiones de terceros.
- Componentes, para encapsular HTML, CSS y JavaScript en unidades funcionales, configurables y bien definidas.
- Acciones, alteran el comportamiento interno de otros elementos de PageTop interceptando su flujo de ejecución.
- Temas, son extensiones que permiten a los desarrolladores cambiar la apariencia de páginas y componentes sin afectar su funcionalidad.
Si quieres saber más sobre el funcionamiento interno de las aplicaciones, continúa leyendo. Si no, puedes saltar a la siguiente página y empezar a añadir lógica a nuestra primera aplicación.
¿Qué hace una aplicación?
Como hemos visto arriba, primero se instancia la Aplicación. Podemos hacerlo usando new(), como en el ejemplo, o con 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 las extensiones de la aplicación según sus dependencias internas.
-
Registra las acciones de las extensiones.
-
Inicializa las extensiones.
-
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 una extensión con un nuevo servicio web!