High-Performance Web Apps with FastAPI
作者: Malhar Lathkar
语言: 英文
出版年份: 2023
编程语言: Python
开源软件: Web开发
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

本书是由Malhar Lathkar撰写,Apress出版社于2023年出版的关于现代Python异步Web框架FastAPI的实用指南。本书旨在帮助读者,尤其是有经验的Python开发者,深入理解并掌握FastAPI的核心特性,以构建高性能的Web应用和API。

书籍背景与目标

随着Python语言对异步处理的支持不断成熟,利用Python构建高性能Web应用变得越来越普遍。FastAPI作为一个基于ASGI(异步服务器网关接口)规范的现代Web框架,凭借其极快的性能和简洁的设计,迅速在开发者社区中流行起来。本书正是为希望利用现代Python特性(如类型提示和异步编程)来构建高效API的开发者而编写的。

内容结构

本书共分为十章,内容编排循序渐进,从基础概念到高级应用,理论与实践相结合。

第一部分:基础入门

  • 第一章:本书开篇介绍了FastAPI所依赖的两大核心基石——Python的类型提示(Type Hints)和异步处理(Asynchronous Processing),并详细讲解了其底层依赖库Starlette和Pydantic。
  • 第二章:通过经典的“Hello World”示例,引导读者创建第一个FastAPI应用。本章重点阐述了FastAPI如何遵循OpenAPI标准,并利用Swagger UI和ReDoc自动生成交互式API文档,同时详细讲解了路径参数和查询参数的定义、传递与验证。

第二部分:核心功能

  • 第三章:聚焦于处理HTTP请求体。本章深入介绍了如何使用Pydantic的BaseModel来定义数据模型,实现请求体的自动解析、数据验证以及模型嵌套,是构建健壮API的关键。
  • 第四章:展示了FastAPI不仅限于API开发,还能用于构建传统Web应用。本章讲解了如何集成Jinja2模板引擎来渲染动态HTML页面,以及如何通过挂载静态目录来提供CSS、JavaScript和图片等静态资源。
  • 第五章:探讨了FastAPI的响应机制。内容包括如何定义响应模型来限制输出数据,如何设置和读取Cookie与自定义HTTP头,以及如何控制响应状态码和使用不同类型的响应(如HTMLResponse、FileResponse、RedirectResponse等)。

第三部分:应用开发

  • 第六章:这是本书中极为重要的一章,全面讲解了FastAPI与数据库的交互。内容覆盖了从同步的DB-API(如sqlite3)到异步的aiosqlite,再到强大的SQLAlchemy ORM及其异步支持。此外,还介绍了如何使用PyMongo和Motor驱动程序连接并操作NoSQL数据库MongoDB,为处理真实数据提供了完整方案。
  • 第七章:指导读者如何构建和管理大型应用程序。通过介绍APIRouter,将不同的路由和功能模块化,从而实现代码的清晰分离与复用。同时,深入探讨了依赖注入(Dependency Injection)系统的原理与应用,以及如何通过中间件(Middleware)实现跨切面功能(如CORS)。

第四部分:高级与部署

  • 第八章:探索FastAPI的高级特性。本章重点介绍了如何利用FastAPI内置支持构建WebSocket服务,实现全双工通信,并指导开发一个多客户端聊天室应用。同时,还介绍了如何使用Strawberry库在FastAPI中集成GraphQL,提供更灵活的API查询方式。此外,还涵盖了应用生命周期事件(如启动和关闭事件)以及如何挂载WSGI应用(如Flask)。
  • 第九章:聚焦于API的安全性测试。本章讲解了FastAPI中异常处理的最佳实践,以及如何通过HTTPBasic和OAuth2(包括密码流和Bearer令牌)实现API的认证与授权。最后,介绍了如何使用TestClient和AsyncClient对API端点(包括WebSocket)进行单元测试和异步测试。
  • 第十章:本书的最后一章,介绍了将FastAPI应用部署到生产环境的各种方案。内容涵盖了使用不同ASGI服务器(如Hypercorn、Daphne)以及结合Gunicorn进行多进程管理。同时,提供了在主流云平台(如Render、Google Cloud Platform、Deta Cloud)上的具体部署步骤,并介绍了使用Docker容器化部署的流程。

特色与资源

本书的一大特色是采用“手把手”的实践方法,全书充满了代码清单和截图,帮助读者边学边练。书中所有代码均经过充分测试,并可从指定的GitHub仓库(https://github.com/Apress/Build-High-Performance-Web-Apps-with-FastAPI-by-Malhar-Lathkar)中获取,为读者提供了便捷的实践环境。

期待您的支持
捐助本站