Как передать строку запроса в HttpRequest.url_for() в actix-web?

Документация о url_for.

Код:

fn index(req: HttpRequest) -> HttpResponse {
    let url = req.url_for("foo", &["1", "2", "3"]); // <- generate url for "foo" resource
    HTTPOk.into()
}

fn main() {
    let app = Application::new()
        .resource("/test/{one}/{two}/{three}", |r| {
             r.name("foo");  // <- set resource name, then it could be used in `url_for`
             r.method(Method::GET).f(|_| httpcodes::HTTPOk);
        })
        .finish();
}

Как добавить к сгенерированному URL строку запроса, например ?name=Alex? Есть ли хороший встроенный способ сделать это с помощью HttpRequest.url_for() (не просто добавить, как url += query_str)

0 ответов

url_for дает вам Result<Url, Error>, который можно развернуть и использовать .set_query на:

req.url_for("foo", &["1", "2", "3"]).unwrap().set_query(Some("q=asdf"));
Другие вопросы по тегам