Flask REST API:简介
大纲
作为一名专业开发者,我的大部分工作都涉及使用 Python 和 Flask 构建后端服务。我尝试过各种不同的方法和技术组合,最终总结出一种在大多数情况下都行之有效的模式。在本系列文章中,我将尽力带您了解构建 Web 服务时需要考虑的不同因素,并解释我做出这些选择的原因。最终,我希望能够为 Flask 开发者提供一份成功的指南,以及一个可以用来启动新 Web 开发项目的模板。
大纲
以下是我计划涵盖的所有与 Web 服务相关的主题。我会详细说明每个问题的解决方案,但也会尽量提供一些通用的建议,无论您使用哪种语言/框架,这些建议都适用。在撰写过程中,部分内容可能会有所调整。我可能会根据评论区的意见添加或删除一些内容。如果您认为我遗漏了任何内容,请告知我,以便我确保在开始撰写时及时添加!我还计划将所有代码上传到 GitHub。
- 基础:构建一个可以成长的应用程序。
- 基本、可持续的包装结构
- 依赖管理
- 本地运行服务
- 与 IDE 集成
- 基本单元测试
- 持续集成:尽早发现错误
- 自动化测试
- 静态分析
- 依赖漏洞
- 风格检查
- 身份验证:了解谁在使用你的应用
- 安全存储和检查凭证
- 使用令牌识别用户
- 对所有资源强制执行身份验证
- 围绕身份验证进行测试(模拟/伪造)
- 数据库:存储和访问数据
- ORM
- 用于测试的一次性数据库
- 迁移(跟踪架构变化)
- API 设计:让你的服务易于使用
- 定义 API 资源
- 基本操作(CRUD)
- API 规范和开发 UI
- 测试 API
- 授权:确保人们只能访问自己的数据
- 可扩展权限框架
- 在端点上强制执行授权检查
- 异步任务:不要减慢用户的速度
- 从请求启动异步作业
- 运行周期性任务
- 电子邮件通知
- 生产准备:增加稳定性
- 生产服务器
- 数据库技术
- 容器(Docker)
- 安全标头
- 版本管理(变更日志)
- 日志记录
- 部署:让你的应用上线
- 基础设施即代码
- DNS
- 负载均衡
- 管理机密
- 多种环境
- 出现问题时发出警报/通知
- 手动和持续部署
- 使用 API:实际使用
- 使用 UI
- 使用 API 工具(Postman)
- 生成客户端库