From e1ea1499885ac4624b199758a2bbbb64799e588b Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Thu, 10 Feb 2022 23:15:50 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1ade=20Sycamore=20para=20render=20de=20HT?= =?UTF-8?q?ML=20con=20reactividad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 1 + src/core/server/main.rs | 15 +++++++++++---- src/core/server/mod.rs | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e29ba8be..168ee872 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,7 @@ categories = [ [dependencies] actix-web = "4.0.0-rc.3" +sycamore = { version = "0.8.0-beta.2", features = ["ssr"] } [lib] name = "pagetop" diff --git a/src/core/server/main.rs b/src/core/server/main.rs index 022d32d1..6a54d243 100644 --- a/src/core/server/main.rs +++ b/src/core/server/main.rs @@ -1,15 +1,22 @@ use crate::core::{server, Server}; -async fn greet(req: server::HttpRequest) -> impl server::Responder { - let name = req.match_info().get("name").unwrap_or("World"); - format!("Hello {}!", &name) +async fn greet() -> impl server::Responder { + "Hello!" +} + +async fn greet_with_param(req: server::HttpRequest) -> server::HttpResponse { + let name: String = req.match_info().get("name").unwrap_or("World").into(); + server::HttpResponse::Ok() + .body(sycamore::render_to_string(|ctx| sycamore::view! { ctx, + p { "Hello " (name) "!" } + })) } pub fn run() -> Result { let server = server::HttpServer::new(|| { server::App::new() .route("/", server::web::get().to(greet)) - .route("/{name}", server::web::get().to(greet)) + .route("/{name}", server::web::get().to(greet_with_param)) }) .bind("127.0.0.1:8000")? .run(); diff --git a/src/core/server/mod.rs b/src/core/server/mod.rs index f293ee80..a1210ce3 100644 --- a/src/core/server/mod.rs +++ b/src/core/server/mod.rs @@ -1,4 +1,4 @@ -pub use actix_web::{web, App, HttpRequest, HttpServer, Responder}; +pub use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer, Responder}; mod main; pub use main::run;