1
0
mirror of https://github.com/actix/actix-website synced 2024-11-23 16:31:08 +01:00

Adds to workspace to test all code actually functions.

This commit is contained in:
Cameron Dershem 2019-06-12 18:14:10 -04:00
parent a5f7e0d095
commit cbd27e7668
13 changed files with 160 additions and 0 deletions

View File

@ -1,6 +1,7 @@
[workspace]
members = [
"application",
"front-page",
"getting-started",
"server",
"url-dispatch",

View File

@ -0,0 +1,8 @@
[workspace]
members = [
"main-example",
"flexible-responders",
"easy-form-handling",
"request-routing",
"powerful-extractors",
]

View File

@ -0,0 +1,8 @@
[package]
name = "easy-form-handling"
version = "0.1.0"
edition = "2018"
[dependencies]
actix-web = "1.0"
serde = "1.0"

View File

@ -0,0 +1,35 @@
// <easy-form-handling>
use actix_web::{web, App, HttpResponse, HttpServer};
use serde::Deserialize;
#[derive(Deserialize)]
struct Register {
username: String,
country: String,
}
fn index() -> actix_web::Result<HttpResponse> {
Ok(HttpResponse::Ok()
.content_type("text/html; charset=utf-8")
.body(include_str!("../static/form.html")))
}
fn register(params: web::Form<Register>) -> actix_web::Result<HttpResponse> {
Ok(HttpResponse::Ok().body(format!(
"Hello {} from {}!",
params.username, params.country
)))
}
fn main() {
HttpServer::new(|| {
App::new()
.route("/", web::get().to(index))
.route("/register", web::post().to(register))
})
.bind("127.0.0.1:8000")
.expect("Can not bind to port 8000")
.run()
.unwrap();
}
// </easy-form-handling>

View File

@ -0,0 +1,30 @@
<!doctype htmtl>
<html>
<head>
<meta charset=utf-8>
<title>Forms</title>
</head>
<body>
<h3>Will hit handle_post_1</h3>
<form action=/register method=POST>
<label>
Name:
<input name="username">
</label>
<label>
Country:
<input name="country">
</label>
<button type=submit>Submit</button>
</form>
<hr>
</body>
</html>

View File

@ -0,0 +1,6 @@
[package]
name = "flexible-responders"
version = "0.1.0"
edition = "2018"
[dependencies]

View File

@ -0,0 +1,5 @@
// <flexible-responders>
fn main() {
println!("Hello, world!");
}
// </flexible-responders>

View File

@ -0,0 +1,7 @@
[package]
name = "front-page"
version = "0.1.0"
edition = "2018"
[dependencies]
actix-web = "1.0"

View File

@ -0,0 +1,20 @@
// <main-example>
use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer};
fn greet(req: HttpRequest) -> HttpResponse {
let name = req.match_info().get("name").unwrap_or("World");
HttpResponse::Ok().body(format!("Hello {}!", &name))
}
fn main() {
HttpServer::new(|| {
App::new()
.service(web::resource("/").to(greet))
.service(web::resource("/{name}").to(greet))
})
.bind("127.0.0.1:8000")
.expect("Can not bind to port 8000")
.run()
.unwrap();
}
// </main-example>

View File

@ -0,0 +1,7 @@
[package]
name = "powerful-extractors"
version = "0.1.0"
edition = "2018"
[dependencies]
actix-web = "1.0"

View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

View File

@ -0,0 +1,7 @@
[package]
name = "request-routing"
version = "0.1.0"
edition = "2018"
[dependencies]
actix-web = "1.0"

View File

@ -0,0 +1,23 @@
// <request-routing>
use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer};
fn index(_req: HttpRequest) -> HttpResponse {
HttpResponse::Ok().body("Hello from the index page.")
}
fn hello(path: web::Path<String>) -> HttpResponse {
HttpResponse::Ok().body(format!("Hello {}!", &path))
}
fn main() {
HttpServer::new(|| {
App::new()
.service(web::resource("/").to(index))
.service(web::resource("/{name}").to(hello))
})
.bind("127.0.0.1:8000")
.unwrap()
.run()
.unwrap();
}
// </request-routing>