guide on Rocket's site schlägt vor, dass dynamische Routen eingestuft werden können. In diesem Beispiel werden für den dynamischen Abschnitt verschiedene Typen als übereinstimmende Kriterien für die Routen verwendet. Wenn ich eine URL mit etwas setzen andere als ein usize
, bekomme ich folgende Fehlermeldung:Rocket analysiert RawStr in einer URL nicht, um Route
GET /user/three text/html:
=> Matched: GET /user/<id>
=> Failed to parse 'id': RawStr("three")
=> Outcome: Forward
=> Error: No matching routes for GET /user/three text/html.
=> Warning: Responding with 404 Not Found catcher.
=> Response succeeded.
Der Code Ich verwende:
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;
use rocket::http::RawStr;
#[get("/user/<id>")]
fn user(id: usize) -> String { format!("First rank") }
#[get("/user/<id>", rank = 2)]
fn user_int(id: isize) -> String { format!("second rank") }
#[get("/user/<id>", rank = 3)]
fn user_str(id: &RawStr) -> String { format!("last rank") }
fn main() {
rocket::ignite().mount("/", routes![user]).launch();
}
Ich würde bei /user/three
anstelle eines 404 error
eine Seite erwarten Anzeige des Tests last rank
. Warum macht es das nicht?
Ja, genau das dachte, diese Sekunde aus. –