Skip to content

mattiiichen/fastapi-learning-notes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

《利用FastAPI构建Python微服务》学习笔记

本书主要从FastAPI核心功能出发,结合后端项目介绍各组件使用,包括:

  1. 熟悉FastAPI初始化及配置,并了解HTTP的8个方法的构建,详细介绍了@app的装饰器使用,以及FastAPI的路径参数、查询参数、默认参数、可选参数、请求正文、请求头、响应数据等。
  2. 结合智能旅游系统项目,探索核心功能,包含API服务的实现、注册router、状态响应码、异常处理、转换JSON兼容的对象、后台任务埋点、日志管理等。
  3. 结合在线食谱系统,了解依赖注入原理,包含依赖函数和可调用类的注入、缓存依赖项以及注入依赖项的方法,还可以采用第三方容器Dependency InjectLagom
  4. 结合大学企业资源计划系统,采用子域分解方式,构建教师、图书馆和学生管理模块,结合领域模型,实现微服务应用程序,其中包括子模块的挂载、异常处理、集中日志记录、配置管理等。
  5. 结合健身俱乐部管理系统,介绍使用SQLAlchemy创建CRUD事务,使用多种ORM框架(Pony ORM、Peewee)构建存储库层,还介绍了CQRS设计模式,分离查询事务与命令事务(插入、更新、删除)
  6. 结合在线图书转售系统,介绍使用PyMongoMotor创建CRUD事务,比较MongoEngineBeanieODManticMongoFrames的功能,其中BeanieMotor的升级版,ODManticMotorPydantic的组合版,创建异步CRUD时,可以使用ODMantic框架,创建同步CRUD时,可以使用MongoFrames框架。
  7. 结合安全的在线拍卖系统,介绍身份验证和授权管理,身份验证包含BasicDigest两个基础的身份验证、基于OAuth2的密码身份验证、JWTtoken密钥验证,授权管理包括基于作用域的授权、OAuth2AuthorizationCodeBearer的授权码流,并和KeycloakAuth0Okta等系统集成,完成身份和用户管理。
  8. 结合在线报纸管理系统,介绍协程和异步后台任务的创建与使用,并了解Celery任务,使用RabbitMQKafka发布和订阅消息。还通过rx包介绍反应式编程范式。
  9. 结合在线餐厅评论系统,介绍一些FastAPI高级功能,包括基于request.session的会话管理、使用CORSMiddleware的CORS解决方案、自定义APIRouteRequest解决数据正文的加解密,还介绍了响应的选择、OpenAPI 3.x规范,以及使用pytest进行API端点测试。
  10. 结合定期普查和计算系统的基本框架,介绍Piccolo ORM框架,使用sympynumpypandasscipy进行数据处理与统计分析,并通过Celery模拟BPMN工作流,还介绍了Neo4j数据库的集成。
  11. 结合在线体育管理系统,介绍基于starlette-exporter的API服务监控、基于opentelemetry-exporter-jaeger的服务跟踪、基于py_eureka_client的服务注册和发现,还对Docker部署、Flask和Django子应用的集成进行了讲解。

建议学习时长:6天

原书项目地址:https://github.com/PacktPublishing/Building-Python-Microservices-with-FastAPI

在线阅读地址

在线阅读地址:https://relph1119.github.io/fastapi-learning-notes

项目结构

docs---------------------------------------学习笔记
codes--------------------------------------代码练习
+---ch01---------------------------------------第1章 设置FastAPI
+---ch02---------------------------------------第2章 探索核心功能
+---ch03---------------------------------------第3章 依赖注入研究
+---ch04---------------------------------------第4章 构建微服务应用程序
+---ch05---------------------------------------第5章 连接到关系数据库
+---ch06---------------------------------------第6章 使用非关系数据库
+---ch07---------------------------------------第7章 保护REST API的安全
+---ch08---------------------------------------第8章 创建协程、事件和消息驱动的事务
+---ch09---------------------------------------第9章 利用其他高级功能
+---ch10---------------------------------------第10章 解决数值、符号和图形问题
+---ch11---------------------------------------第11章 添加其他微服务功能
requirements.txt---------------------------运行环境依赖包

环境安装

Python版本

Python 3.10 Windows环境

运行环境配置

安装相关的依赖包

pip install -r requirements.txt

About

《利用FastAPI构建Python微服务》学习笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • Other 0.4%