`HttpRequest` vacía `parts.extensions` al extraerse; `Path<T>` y otros extractores que dependen de ellas deben declararse antes en el handler. Corregido en el ejemplo hello-name y documentado en HttpRequest.
27 lines
642 B
Rust
27 lines
642 B
Rust
use pagetop::prelude::*;
|
|
|
|
struct HelloName;
|
|
|
|
impl Extension for HelloName {
|
|
fn configure_router(&self, router: Router) -> Router {
|
|
router.route("/hello/{name}", web::get(hello_name))
|
|
}
|
|
}
|
|
|
|
async fn hello_name(
|
|
web::Path(name): web::Path<String>,
|
|
request: HttpRequest,
|
|
) -> Result<Markup, ErrorPage> {
|
|
Page::new(request)
|
|
.with_child(Html::with(move |_| {
|
|
html! {
|
|
h1 style="text-align: center;" { "Hello " (name) "!" }
|
|
}
|
|
}))
|
|
.render()
|
|
}
|
|
|
|
#[pagetop::main]
|
|
async fn main() -> std::io::Result<()> {
|
|
Application::prepare(&HelloName).await.run().await
|
|
}
|