在这篇文章中,我们将讨论以下话题:

  • 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

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。