Я определил конечную точку с помощью actix-web следующим образом:
#[derive(Deserialize)]
struct RenderInfo {
filename: String,
}
fn render(info: actix_web::Path<RenderInfo>) -> Result<String> {
// ...
}
App::new()
.middleware(middleware::Logger::Default())
.resource("/{filename}", |r| r.get().with(render))
Проблема, с которой я столкнулся, заключается в том, что необработанный HTML-код отображается в браузере, а не отображается. Я предполагаю, что тип содержимого установлен неправильно.
Большинство примеров actix-web, которые я видел, использовали impl Responder
для возвращаемого типа, но я не смог выяснить, как исправить возникшие проблемы вывода типов. Кажется, причина в том, что файловые операции возвращают стандартный тип failure::Error
. Похоже, что actix_web требует реализации специального WebError
для блокировки непреднамеренного распространения ошибок. Для этого конкретного случая мне все равно, потому что это скорее внутренний инструмент.