我们将在本章中介绍以下配方:
Rust提供了许多软件包,允许开发人员使用它来启动Web服务器,Rust是内存,安全和速度具有重要意义的Web项目的理想选择。
在本章中,我们将使用Rust中的nickel,这是Rust中的Web应用程序框架,并提供在Rust中构建Web应用程序所需的所有基本单元。 基本单元包括设置Web服务器,处理Web请求等。 我们将专注于nickel为我们在Rust中创建Web应用程序提供的不同宏和类型。
在本文中,您将了解可以将nickel安装到Rust项目中的步骤,并了解用于启动Web服务器的命令,您可以在其中托管Web应用程序。
在我们继续生成Web服务器之前,我们必须安装以下nickel 。 按照给定的步骤下载并设置nickel 项目:
1.我们将要求Rust编译器和任何文本编辑器来开发Rust代码片段。
2.使用Cargo工具创建Rust项目并输入新创建的项目:
cargo new --bin nickel-demo && cd nickel-demo
3.在您喜欢的文本编辑器中打开Cargo.toml文件,并进行以下屏幕截图中显示的修改。 在这里,我们使用nickel ,它在依赖项字段中输入:
4.使用以下命令在项目中安装包:
cargo build
按照给定的步骤实现此配方:
1.在首选文本编辑器中打开src目录中的main.rs文件。
2.使用相关信息编写代码头:
//-- #########################
//-- Task: Starting a simple hello world nickel web app
//-- Author: Vigneshwer.D
//-- Version: 1.0.0
//-- Date: 20 April 17
//-- #########################
3.使用extern关键字导入已安装的nickel:
#[macro_use] extern crate nickel;
use nickel::Nickel;
4.定义我们声明服务器实例的主要功能:
fn main() {
let mut server = Nickel::new();
server.utilize(router! {
get "**" => |_req, _res| {
"Hello world!"
} }
);
server.listen("127.0.0.1:6767");
}
5.使用以下命令从项目的根目录中保存文件并启动服务器:
cargo run
打开您最喜欢的浏览器并重定向到http://127.0.0.1:6767/以获得以下输出:
在这个配方中,我们创建了一个名为nickel-demo的Rust项目,它帮助我们使用镍网应用程序箱生成Web服务器。
从顶部开始,我们使用extern关键字引用外部nickel,并使用#[macro_use]加载其所有宏。 nickel是应用对象和表面,包含所有公共API; 它是一个结构,它实现了执行所有Web应用程序任务的所有基本方法。 在main函数中,我们首先将服务器实例分配给一个可变变量,并使用Nickel :: new()创建一个新的nickel应用程序对象,该对象创建一个具有默认错误处理的nickel实例。
接下来,我们设置了我们使用路由器的端点路由! 当最终用户要求获取请求时,宏监听“”并提供简单消息“Hello world!”。 nickel 或服务器实例的get方法注册用于特定get请求的处理程序。 处理程序分配给路径,允许路径包含变量和通配符; 在我们的情况下,我们有“”处理程序,这是一个通配符条目,并且基本上为任何端点的get请求返回相同的响应。 通过此API添加的处理程序将附加到默认路由器。 双管字符表示Rust中的闭包; 这是我们的请求和响应参数所在的位置,在我们的应用程序中是_req和_res。 从根本上说,有一些结构包含请求和响应数据。
使用server.utilize方法,我们将端点添加到服务器实例并注册处理程序,该处理程序将在每个请求之前在其他处理程序中调用。 server.listen方法侦听127.0.0.1:6767上的API请求,它绑定并侦听给定主机和端口上的连接。
在本文中,您将了解将nickel安装到Rust项目中的步骤。 您还将学习我们可以在Web应用程序中创建自定义端点的命令,这些命令将显示应用程序最终用户访问的不同消息。
在我们继续生成Web服务器之前,我们必须安装以下nickel 。 按照给定的步骤下载并设置项目的nickel :1.我们将要求Rust编译器和任何文本编辑器来开发Rust代码片段。2.使用Cargo工具创建Rust项目并输入新创建的项目:
cargo new --bin nickel-routing && cd nickel-routing
3.在您喜欢的文本编辑器中打开Cargo.toml文件,并进行以下屏幕截图中显示的修改。 在这里,我们使用nickel,它在依赖项字段中输入:
4.使用以下命令在项目中安装包:
cargo build
此命令将在您的Rust中安装nickel 的所有依赖项项目。
请按照以下步骤实现此配方:
1.在首选文本编辑器中打开src目录中的main.rs文件。
2.使用相关信息编写代码头:
//-- #########################
//-- Task: Routing using nickel
//-- Author: Vigneshwer.D
//-- Version: 1.0.0
//-- Date: 20 April 17
//-- #########################
3.使用extern关键字导入已安装的nickel:
#[macro_use] extern crate nickel;
use nickel::{Nickel, HttpRouter};
4.定义我们声明服务器实例的主要功能:
fn main() {
let mut server = Nickel::new();
server.get("/bar", middleware!("This is the /bar
handler"));
server.get("/user/:userid", middleware! { |request|
format!("This is user: {:?}", request.param("userid"))
});
server.get("/a/*/d", middleware!("matches /a/b/d but
not /a/b/c/d"));
server.get("/a/**/d", middleware!("This matches /a/b/d
and also /a/b/c/d"));
server.listen("127.0.0.1:6767");
}
5.使用以下命令从项目的根目录中保存文件并启动服务器:
cargo run
打开您喜欢的浏览器并重定向到以下端点:
输入URL,http://127.0.0.1:6767 / bar:
输入网址http://127.0.0.1:6767/user/viki:
输入URL,http://127.0.0.1:6767 / a / b / d / d:
输入URL,http://127.0.0.1:6767 / a / b / c / d:
输入URL,http://127.0.0.1:6767 / a / b / d:
在这个配方中,我们创建了一个名为nickel-routing的Rust项目,它帮助我们在Web应用程序中创建多个端点,每个端点显示不同的自定义消息。
从顶部开始,我们使用extern关键字引用外部nickel,并使用[macro_use]加载其所有宏。 我们使用nickel作为应用对象和表面,它包含所有公共API。 它是一个实现执行所有Web应用程序任务的所有基本方法的结构,而HttpRouter是由具有各种REST API调用签名的nickle crate提供的公共特征。
在main函数中,我们首先将服务器实例分配给一个可变变量,并使用Nickel :: new()创建一个新的nickle应用程序对象,该对象创建一个具有默认错误处理的nickle实例。
server.get方法注册用于特定get请求的处理程序。 处理程序分配给路径,允许路径包含变量和通配符。 通过此API添加的处理程序将附加到默认路由器。 中间件! macro减少了每条路径所需的样板代码量。
我们在此配方中创建以下路线:
路由可以像/ foo一样简单,使用参数,通配符,甚至是双通配符。
server.listen方法侦听127.0.0.1:6767上的API请求,它绑定并侦听给定主机和端口上的连接。