图书目录

目    录

第Ⅰ部分  Web服务器及Web服务

第1章  为什么Rust可用于Web应用程序   3

1.1  现代Web应用程序简介   4

1.2  为Web应用程序选择Rust   6

1.2.1  Web应用程序的特点   6

1.2.2  Rust对Web应用程序的好处   7

1.2.3  Rust的欠缺之处   11

1.3  可视化示例应用程序   11

1.3.1  构建目标   12

1.3.2  示例应用程序的技术准则   13

1.4  本章小结   14

第2章  从头开始编写一个基本的Web服务器   15

2.1  网络模型   16

2.2  用Rust编写TCP服务器   17

2.2.1  设计TCP/IP通信流程   17

2.2.2  编写TCP服务器和客户端   18

2.3  用Rust编写HTTP服务器   22

2.3.1  解析HTTP请求消息   24

2.3.2  构造HTTP响应消息   31

2.3.3  编写main()函数和server模块   38

2.3.4  编写router和handler模块   39

2.3.5  测试Web服务器   44

2.4  本章小结   46

第3章  构建RESTful Web服务   47

3.1  Actix入门   47

3.1.1  编写第一个REST API   48

3.1.2  了解Actix概念   50

3.2  使用REST构建Web API   52

3.2.1  定义项目范围和结构   53

3.2.2  定义和管理应用程序状态   56

3.2.3  定义数据模型   59

3.2.4  发布课程   63

3.2.5  获取导师的所有课程   66

3.2.6  获取单个课程的详细信息   68

3.3  本章小结   70

第4章  执行数据库操作   73

4.1  设置项目结构   73

4.2  编写与数据库的第一个异步连接(迭代1)   75

4.2.1  选择数据库和连接库   75

4.2.2  设置数据库并与异步池连接   76

4.3  设置Web服务并编写单元测试(迭代2)   81

4.3.1  设置依赖和路由   81

4.3.2  设置应用程序状态和数据模型  82

4.3.3  使用依赖注入设置连接池   83

4.3.4  编写单元测试   85

4.4  从数据库创建和查询记录(迭代3)   87

4.4.1  编写数据库访问函数   87

4.4.2  编写处理器函数   90

4.4.3  为数据库支持的Web服务编写main()函数   92

4.5  本章小结   95

第5章  处理错误   97

5.1  设置项目结构   98

5.2  Rust和Actix Web中的基本错误处理   101

5.3  定义自定义错误处理程序  106

5.4  检索所有课程的错误处理  109

5.5  检索课程详情的错误处理  114

5.6  发布新课程时的错误处理  116

5.7  本章小结   117

第6章  增强API无畏重构   119

6.1  改造项目结构   119

6.2  强化课程创建和管理的数据模型   124

6.2.1  更改数据模型   125

6.2.2  更改课程API   129

6.3  启用导师注册和管理   141

6.3.1  导师的数据模型和路由   142

6.3.2  导师路由的处理器函数   143

6.3.3  导师路由的数据库访问功能   145

6.3.4  导师的数据库脚本   147

6.3.5  运行并测试导师API   148

6.4  本章小结   151

第Ⅱ部分  服务器端Web应用程序

第7章  介绍Rust中的服务器端Web应用程序   155

7.1  介绍服务器端渲染   156

7.2  使用Actix提供静态网页   157

7.3  使用Actix和Tera渲染动态网页   159

7.4  使用表单添加用户输入   162

7.5  显示带有模板的列表   164

7.6  编写和运行客户端测试   168

7.7  连接到后端Web服务   170

7.8  本章小结   173

第8章  使用导师注册模板   175

8.1  编写初始Web应用程序   176

8.2  显示注册表单   181

8.3  注册提交处理   186

8.4  本章小结   191

第9章  使用表单进行课程维护   193

9.1  设计用户验证   193

9.2  设置项目结构   195

9.3  实现用户验证   196

9.4  路由HTTP请求   200

9.5  使用HTTP POST方法创建资源   203

9.6  使用HTTP PUT方法更新资源   206

9.7  使用HTTP DELETE方法删除资源   208

9.8  本章小结   209

第Ⅲ部分  高级主题:异步Rust

第10章  了解异步Rust   213

10.1  异步编程概念   213

10.2  编写并发程序   219

10.3  深入研究异步Rust   223

10.4  了解future   227

10.5  实现自定义future   233

10.6  本章小结   236

第11章  使用异步Rust构建P2P节点   239

11.1  介绍点对点网络   239

11.1.1  传输   241

11.1.2  对等身份   241

11.1.3  安全性   241

11.1.4  对等路由   241

11.1.5  消息传递   242

11.1.6  流复用   242

11.2  了解libp2p网络的核心架构   242

11.2.1  对等ID和密钥对   243

11.2.2  多地址   245

11.2.3  Swarm和网络行为   245

11.3  在对等节点之间交换ping命令   247

11.4  发现对等节点   249

11.5  本章小结   251

第12章  使用Docker部署Web服务   253

12.1  介绍服务器和应用程序的生产部署   254

12.1.1  软件部署周期   254

12.1.2  Docker容器的基础知识   255

12.2  编写Docker容器   257

12.2.1  检查Docker安装情况   257

12.2.2  编写一个简单的Docker容器   258

12.2.3  多阶段Docker构建   261

12.3  构建数据库容器   263

12.3.1  打包Postgres数据库   264

12.3.2  创建数据库表   268

12.4  使用Docker打包Web服务   270

12.5  使用Docker Compose编排Docker容器   271

12.6  本章小结   276