pagetop/website/doc/v0.0/es/src/apps.md

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:

  1. Inicializa la traza de mensajes de registro y eventos.

  2. Valida el identificador global de idioma.

  3. Conecta con la base de datos.

  4. Registra las extensiones de la aplicación según sus dependencias internas.

  5. Registra las acciones de las extensiones.

  6. Inicializa las extensiones.

  7. 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!