1
0
mirror of https://github.com/actix/actix-website synced 2025-06-27 15:39:02 +02:00

First pass at url-dispatch chapter.

This commit is contained in:
Cameron Dershem
2019-06-17 04:12:11 -04:00
parent 35156b0a75
commit 71e6f076a4
8 changed files with 54 additions and 57 deletions

View File

@ -3,7 +3,7 @@ use actix_web::{guard, web, App, HttpResponse};
pub fn main() {
App::new().service(
web::resource("/").route(
web::resource("/path").route(
web::route()
.guard(guard::Get())
.guard(guard::Header("content-type", "text/plain"))

View File

@ -23,6 +23,6 @@ fn index(_req: HttpRequest) -> HttpResponse {
fn main() {
App::new()
.route("/user/{name}", web::get().to(index))
.route("/user/{name}", web::get().to(index));
.route("/user/{name}", web::post().to(index));
}
// </main>

View File

@ -1,13 +1,16 @@
// <minfo>
use actix_web::{web, App, HttpRequest, Result};
use actix_web::{web, App, HttpRequest, HttpServer, Result};
fn index(req: HttpRequest) -> Result<String> {
let v1: u8 = req.match_info().query("v1").parse().unwrap();
let v1: u8 = req.match_info().get("v1").unwrap().parse().unwrap();
let v2: u8 = req.match_info().query("v2").parse().unwrap();
Ok(format!("Values {} {}", v1, v2))
let (v3, v4): (u8, u8) = req.match_info().load().unwrap();
Ok(format!("Values {} {} {} {}", v1, v2, v3, v4))
}
fn main() {
App::new().route(r"/a/{v1}/{v2}/", web::get().to(index));
App::new()
.route("/a/{v1}/{v2}/", web::get().to(index))
.route("", web::get().to(|| actix_web::HttpResponse::Ok()));
}
// </minfo>

View File

@ -12,7 +12,7 @@ fn index(info: web::Path<Info>) -> Result<String> {
Ok(format!("Welcome {}!", info.username))
}
fn main() {
pub fn main() {
App::new().route(
"/{username}/index.html", // <- define path parameters
web::get().to(index),

View File

@ -7,7 +7,7 @@ fn index(_req: HttpRequest) -> HttpResponse {
fn main() {
App::new()
.service(web::resource("/prefix").route(web::get().to(index)))
.service(web::resource("/prefix").to(index))
.service(
web::resource("/user/{name}").route(web::get().to(|| HttpResponse::Ok())),
);

View File

@ -1,15 +1,17 @@
// <ext>
use actix_web::{web, App, Error, HttpRequest, HttpResponse};
use actix_web::{web, App, Error, HttpRequest, HttpResponse, Responder};
fn index(req: HttpRequest) -> Result<HttpResponse, Error> {
let url = req.url_for("youtube", &["oHg5SJYRHA0"])?;
fn index(req: HttpRequest) -> impl Responder {
let url = req.url_for("youtube", &["oHg5SJYRHA0"]).unwrap();
assert_eq!(url.as_str(), "https://youtube.com/watch/oHg5SJYRHA0");
Ok(HttpResponse::Ok().into())
url.into_string()
}
fn main() {
pub fn main() {
App::new()
.service(web::resource("/index.html").route(web::get().to(index)))
.external_resource("youtube", "https://youtube.com/watch/{video_id}");
.route("/index.html", web::get().to(index))
.external_resource("youtube", "https://youtube.com/watch/{video_id}")
.route("/", actix_web::web::get().to(index));
}
// </ext>

View File

@ -10,7 +10,7 @@ fn index(req: HttpRequest) -> Result<HttpResponse> {
.finish())
}
fn main() {
pub fn main() {
App::new()
.service(
web::resource("/test/{a}/{b}/{c}")