From 88300abd1f4a0608727c0469c562e8cd46b13448 Mon Sep 17 00:00:00 2001 From: krircc Date: Sat, 23 Jun 2018 11:58:06 +0800 Subject: [PATCH] fix typo --- layouts/index.html | 285 ++++++++++++++++++----------------- layouts/partials/footer.html | 4 +- 2 files changed, 145 insertions(+), 144 deletions(-) diff --git a/layouts/index.html b/layouts/index.html index 7ee8f05..ea96734 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,147 +1,5 @@ {{ partial "header" . }} -
-
-
- -

Rust的actor系统和有趣的web框架

-
-
- -
-
-
-
-

- - 类型安全 -

-

忘记关于字符串类型的对象,从请求到响应,一切都有类型,异步。

- -

- - 特性丰富 -

-

Actix提供了丰富的特性开箱即用。WebSockets,HTTP/2,流,管道,SSL,异步HTTTP客户端等一应俱全.

- -

- - 扩展性强 -

-

轻松创建任何基于Actix应用的自己的特色库。

- -

- - 速度极快 -

-

Actix 具有顶级的速度. Check yourself.

-
-
-
-
- {{ highlight `extern crate actix_web; - use actix_web::{http::Method, server, App, Path, Responder}; - - fn index(info: Path<(u32, String)>) -> impl Responder { - format!("Hello {}! id:{}", info.1, info.0) - } - - fn main() { - server::new( - || App::new() - .route("/{id}/{name}/index.html", Method::GET, index)) - .bind("127.0.0.1:8080").unwrap() - .run(); - }` "rust" "" }} -
-
-
-
-
-
-

灵活的请求响应

-

- Actix中的Handler函数可以返回实现该Respondert rait的各种对象。这使得从API返回一致的响应变得轻而易举。 -

- {{ highlight `#[derive(Serialize)] - struct Measurement { - temperature: f32, - } - - fn hello_world() -> impl Responder { - "Hello World!" - } - - fn current_temperature(_req: HttpRequest) -> impl Responder { - Json(Measurement { temperature: 42.3 }) - }` "rust" "" }} -
-
-

强大的Extractors

-

- Actix提供了一个强大的提取器系统,可以从传入的HTTP请求中提取数据并将其传递给您的视图函数。这不仅可以创建方便的API, - 而且还意味着您的视图函数可以是同步代码,并且仍然可以受益于异步IO处理。 -

- {{ highlight `#[derive(Deserialize)] - struct Event { - timestamp: f64, - kind: String, - tags: Vec, - } - - fn capture_event(evt: Json) -> impl Responder { - let id = store_event_in_db(evt.timestamp, evt.kind, evt.tags); - format!("got event {}", id) - }` "rust" "" }} -
-
-

轻松处理表单

-

- 处理multipart/ urlencoded表单数据很容易。只需定义一个可以反序列化的结构,actix就可以处理剩下的部分。 -

- {{ highlight `#[derive(Deserialize)] - struct Register { - username: String, - country: String, - } - - fn register(data: Form) -> impl Responder { - format!("Hello {} from {}!", data.username, data.country) - }` "rust" "" }} -
-
-

请求路由

-

- 一个actix应用程序带有一个URL路由系统,可以让你在URL上匹配并调用单个处理程序。为了获得额外的灵活性,可以使用域。 -

- {{ highlight `fn index(req: HttpRequest) -> impl Responder { - "Hello from the index page" - } - - fn hello(path: Path) -> impl Responder { - format!("Hello {}!", *path) - } - - fn main() { - App::new() - .resource("/", |r| r.method(Method::Get).with(index)) - .resource("/hello/{name}", |r| r.method(Method::Get).with(hello)) - .finish(); - }` "rust" "" }} -
-
- -
-
-
-
@@ -297,4 +155,147 @@
+
+
+
+ +

Rust的actor系统和有趣的web框架

+
+
+ +
+
+ +
+
+ {{ highlight `extern crate actix_web; + use actix_web::{http::Method, server, App, Path, Responder}; + + fn index(info: Path<(u32, String)>) -> impl Responder { + format!("Hello {}! id:{}", info.1, info.0) + } + + fn main() { + server::new( + || App::new() + .route("/{id}/{name}/index.html", Method::GET, index)) + .bind("127.0.0.1:8080").unwrap() + .run(); + }` "rust" "" }} +
+
+
+
+
+
+

灵活的请求响应

+

+ Actix中的Handler函数可以返回实现该Respondert rait的各种对象。这使得从API返回一致的响应变得轻而易举。 +

+ {{ highlight `#[derive(Serialize)] + struct Measurement { + temperature: f32, + } + + fn hello_world() -> impl Responder { + "Hello World!" + } + + fn current_temperature(_req: HttpRequest) -> impl Responder { + Json(Measurement { temperature: 42.3 }) + }` "rust" "" }} +
+
+

强大的Extractors

+

+ Actix提供了一个强大的提取器系统,可以从传入的HTTP请求中提取数据并将其传递给您的视图函数。这不仅可以创建方便的API, + 而且还意味着您的视图函数可以是同步代码,并且仍然可以受益于异步IO处理。 +

+ {{ highlight `#[derive(Deserialize)] + struct Event { + timestamp: f64, + kind: String, + tags: Vec, + } + + fn capture_event(evt: Json) -> impl Responder { + let id = store_event_in_db(evt.timestamp, evt.kind, evt.tags); + format!("got event {}", id) + }` "rust" "" }} +
+
+

轻松处理表单

+

+ 处理multipart/ urlencoded表单数据很容易。只需定义一个可以反序列化的结构,actix就可以处理剩下的部分。 +

+ {{ highlight `#[derive(Deserialize)] + struct Register { + username: String, + country: String, + } + + fn register(data: Form) -> impl Responder { + format!("Hello {} from {}!", data.username, data.country) + }` "rust" "" }} +
+
+

请求路由

+

+ 一个actix应用程序带有一个URL路由系统,可以让你在URL上匹配并调用单个处理程序。为了获得额外的灵活性,可以使用域。 +

+ {{ highlight `fn index(req: HttpRequest) -> impl Responder { + "Hello from the index page" + } + + fn hello(path: Path) -> impl Responder { + format!("Hello {}!", *path) + } + + fn main() { + App::new() + .resource("/", |r| r.method(Method::Get).with(index)) + .resource("/hello/{name}", |r| r.method(Method::Get).with(hello)) + .finish(); + }` "rust" "" }} +
+
+ +
+
+
+ + {{ partial "footer" . }} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 435d3cc..ff5f9c3 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -18,11 +18,11 @@