在这篇文章中,我们将讨论以下话题:
- Python vs. C++ vs. Java
- 解释 9 种 API 测试类型
- API vs. SDK
- 每个人的系统设计
- 解释对象存储的 6 大用例
9 种 API 测试类型
冒烟测试(Smoke Testing) 在 API 开发完成后进行。简单验证 API 是否工作且没有破坏
功能测试(Functional Testing) 基于功能需求创建测试计划,并将结果与预期结果比较
集成测试(Integration Testing) 此测试组合多个 API 调用以执行端到端测试。测试服务内通信和数据传输
回归测试(Regression Testing) 此测试确保 bug 修复或新功能不应破坏 API 的现有行为
负载测试(Load Testing) 通过模拟不同负载测试应用性能。然后我们可以计算应用容量
压力测试(Stress Testing) 我们故意给 API 创建高负载,并测试 API 是否能够正常功能
安全测试(Security Testing) 此测试针对所有可能的外部威胁测试 API
UI 测试(UI Testing) 此测试 UI 与 API 的交互以确保数据可以正确显示
模糊测试(Fuzz Testing) 此测试将无效或意外输入数据注入 API 并尝试崩溃 API。通过这种方式,它识别 API 漏洞
API vs. SDK
API(应用程序编程接口)和 SDK(软件开发工具包)是软件开发世界中的重要工具,但它们服务于不同目的:
API
API 是一组规则和协议,允许不同软件应用和服务相互通信。
- 定义软件组件应该如何交互
- 促进软件组件之间的数据交换和功能访问
- 通常由端点、请求和响应组成
SDK
SDK 是工具、库、示例代码和文档的综合包,帮助开发者为特定平台、框架或硬件构建应用。
- 提供更高级别的抽象,简化特定平台的开发
- 针对特定平台或框架定制,确保在该平台上的兼容性和最佳性能
- 提供对特定平台的高级功能和能力的访问,否则可能难以从头开始实现
API 和 SDK 之间的选择取决于开发目标和项目需求。
问题:你发现自己倾向于哪个——API 还是 SDK?每个实现都有独特的故事可讲。你的是什么?
开源系统设计仓库
我们上周开源了”System Design 101”GitHub 仓库,刚刚达到 35,000 星。
感谢所有点赞、fork 或贡献仓库的人。我们获得了第一个 GitHub 徽章!
我们积极改进它,上周合并了 15 个 pull request。欢迎每个人贡献。
GitHub 仓库包含什么:
- 100 个带视觉的字节大小系统概念
- 真实案例研究
- 如何准备系统设计面试的技巧
包含主题(以及更多更多):
- SOAP vs. REST vs. GraphQL vs. RPC
- HTTP 1.0 → HTTP 1.1 → HTTP 2.0 → HTTP 3.0 (QUIC)
- CI/CD 管道简单解释
- 8 个驱动数据库的数据结构
- 顶级缓存策略
- 典型微服务架构是什么样
对象存储 6 大用例
什么是对象存储?
对象存储使用对象存储数据。与使用分层结构存储文件的文件存储,或将文件划分为相等块大小的块存储相比,对象存储将元数据与对象一起存储。典型产品包括 AWS S3、Google Cloud Storage 和 Azure Blob Storage。对象存储提供格式灵活性并轻松扩展。
用例 1:数据归档
随着业务数据不断增长,我们不能将所有数据存储在核心存储系统中。我们需要有分层存储计划。对象存储可用于归档存在于审计或客户声明中的旧数据。这是一种具有成本效益的方法。
用例 2:非结构化数据存储
我们经常需要处理非结构化数据或半结构化数据。过去,它们通常作为 blob 存储在关系数据库中,这相当低效。对象存储是音乐、视频文件和文本文档的良好匹配。像 Spotify 或 Netflix 这样的公司使用对象存储持久化他们的媒体文件。
用例 3:云原生存储
对于云原生应用,我们需要数据存储系统灵活且可扩展。主要公共云提供商对其对象存储产品有简单的 API 访问,并可用于经济存储选择。
用例 4:数据湖
分布式系统中有许多类型的数据。对象存储支持的数据湖为不同业务线提供了一个倾倒数据的好地方,以供以后分析或机器学习。对象存储的高效读写促进了数据处理管道中的更多步骤,包括 ETL(提取 - 转换 - 加载)或构建数据仓库。
用例 5:物联网(IoT)
IoT 传感器产生各种数据。对象存储可以存储这种类型的时间序列,并在其上运行分析或 AI 算法。主要公共云提供商提供管道将原始 IoT 数据摄取到对象存储中。
用例 6:备份和恢复
对象存储可用于存储数据库或文件系统备份。以后,可以加载备份以快速恢复。这提高了系统的可用性。
问题:你将对象存储用于什么?
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP83: Explaining 9 Types of API Testing。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。