所有文章 > 日积月累 > 用于开发 API 的最佳免费 REST API 调试工具
用于开发 API 的最佳免费 REST API 调试工具

用于开发 API 的最佳免费 REST API 调试工具

在开发 Moesif API 分析平台时,我们需要创建和使用许多 API。其中一些是支持我们各种服务的内部 API,而另一些则是外部 API,例如我们的支付提供商或身份验证服务。这些 API 既来自内部,也来自第三方。当然,我们在自己的 API 上使用自己的 API 分析来“吃自己的狗粮”,但我们也使用许多其他工具,其中许多是免费的。我们想分享一些我们在开发和使用 API 时真正喜欢并经常使用的最佳工具。虽然这篇文章重点介绍开发,但后续文章将介绍在生产中提供可靠 API 的最佳工具。

这篇文章根据用途来组织各种工具。

发送 API 请求

大多数 Web 开发人员都需要在某个时候发送 API 请求。无论您是移动应用开发人员,测试针对后端的请求,还是开发和运行自己的服务。当然,您可以通过将 URL 直接放入浏览器中来触发 GET 请求,但浏览器可能会通过本地缓存进行干扰,因此您实际上不知道是什么访问了您的服务器。此外,浏览器具有严格的安全策略,可防止更改 Origin 标头或 URL 大小限制等内容。

PostMan

最流行的 HTTP 客户端之一是Postman。它有一个非常漂亮的 GUI 界面,无论您是刚开始使用 RESTful API 还是专家,都非常易于使用。过去调用的历史记录会保存下来,以便您可以快速重新发出。Postman 甚至包含一些不错的功能,例如自动完成标准 HTTP 标头以及支持和呈现从 JSON 到 HTML 甚至多部分的各种有效负载。

cURL

如果您更喜欢基于命令行的工具,cURL 非常快捷。大多数 *nix 发行版都包含 cURL,这使其成为任何通过 SSH 访问远程主机而无需担心安装自定义工具的便捷工具。鉴于 cURL 的广泛安装基础,您可以构建依赖于 cURL 的测试和部署脚本,而不必担心被锁定在单个供应商中。

在浏览器中捕获 AJAX 调用

鉴于 Web 应用中的 API 是前端和后端之间的接口和契约,当出现问题时,了解哪一方违反了契约是很有用的。如果您的 Web 应用无法从后端正确加载数据,您可能要做的第一件事就是检查 API 请求和响应是否存在任何异常。

Chrome 开发者工具

大多数桌面浏览器都包含某种类型的开发人员工具,例如Safari 的 Web 开发工具、 Chrome 的 DevTools和Firefox 的开发人员工具。这些工具默认包含在浏览器中,可让您快速检查 API 调用。

捕获来自非浏览器应用程序的 HTTP 请求

捕获来自非 Web 应用程序的 API 请求可能具有挑战性,因为您没有丰富的浏览器开发人员工具来检查 API 调用(不包括额外的编排)。许多解决方案需要使用可以拦截和记录 HTTP 流量的反向或正向代理。

Moesif API 分析

Moesif是我们自己的 API API 日志分析和分析服务,它还提供免费计划。Moesif 可让您实时跟踪来自您自己的或第三方 API 的实时 API 流量,并让您深入了解 API 上发生的事情。Moesif 可与 Postman 等其他工具连接以重放任何 API 调用。除了 API 日志分析和调试之外,Moesif 还提供产品洞察,告诉您您的最佳客户与流失客户使用 API 的方式有何不同。

Charles Proxy

Charles Proxy是一款非常流行的免费工具,但它并不托管在云端。您必须安装该软件,并在自己的机器上安装和运行它。Charles Proxy 的工作原理是将您本地机器的所有流量作为 HTTP 代理路由。您还可以在计算机上打开一个端口,并配置您的 iPhone 或 Android 设备以通过 Charles 路由其流量。只需记住在计算机上停止 Charles 时在智能手机的设置中禁用代理即可。否则,您的手机将无法连接到互联网。由于所有网络流量都将通过 Charles 路由,因此您可以利用过滤器仅记录对特定域或主机的请求。查看配置 Charles了解更多信息。SSL 证书可能会导致额外的复杂情况,因为代理需要是中间人并破坏 SSL 隧道。您可以在设备上安装 Charles SSL 证书。

SandroProxy

SandroProxy就像 Android 版 Charles。如果您在旅途中调试并且没有可用的桌面和 LAN,它会很有用。您还可以将其连接到 Chrome Dev Tools。

Fiddler

Fiddler与 Charles 类似,它会在本地机器上设置代理。您必须下载并安装该软件。

重放捕获的 API 请求。

重现捕获的请求使您能够重现之前创建的相同流量。这对于在不同主机上重放(例如在本地开发机器上重放生产流量模式)或验证修复是否已更正很有用。

Postman Interceptor

Postman Interceptor提供了一种捕获 API 调用并重放它们的方法。但是,Postman Interceptor 只能捕获 HTTP 请求数据。它无法捕获 HTTP 响应。主要重点是重放请求,而不是记录以进行调试。

分享API请求数据

如果您正在与团队合作,您通常希望与团队的其他成员共享捕获的 HTTP 跟踪,或者让他们重播场景,而无需手动模拟 API 请求。

虽然您可以打开 Chrome 开发者工具并复制并粘贴其中的数据以与您的团队共享,但这样做很麻烦。

ApiRequest.IO

我们开发的免费工具,我们正在大肆宣传。Api Capture Chrome 扩展程序可捕获来自任意网站的所有 AJAX 调用,然后将其存储在云服务apirequest.io中。该服务创建一个共享工作区,可通过模糊化的 URL 与其他人共享 30 天。有点像共享 Google Doc 链接。

模拟服务器

如果您要编写客户端代码来针对 API 进行测试,通常需要模拟 API 服务器。但是,有时该 API 服务甚至尚未开发或启动和运行起来很复杂。在这些情况下,您可以使用模拟服务器,其核心是将一些预定义的 JSON 转发回请求者。

JSON Server

JSON Server是一个开源 moch 服务器,您可以在您的机器上克隆并运行它。

JSON Placeholder

如果您不想在本地运行自己的模拟服务器,则可以使用托管服务,例如JSON 占位符。

模拟不同的 HTTP 响应

JSON 服务器和 JSON 占位符 API 调用始终以200 OK响应。如果你想测试客户端如何处理不同的 HTTP 错误响应,你可以设置一个更复杂的模拟服务器来提供这种灵活性。

httpbin

Runscope 的httpbin在其网站上提供托管服务,或者您可以克隆其开源存储库并运行您自己的服务。httpbin 为从 gzip 编码响应到照片等二进制数据的所有内容提供模拟端点。

Mocky.io

与 httpbin 一样,mocky.io是开源的,也有一个托管版本。Mocky 比以前的工具灵活得多,因为它允许任意响应主体和状态代码。如果您需要将某些特定的 JSON 返回给客户端,这一点很重要。它还支持各种 Content-Type,例如 text/xml、multipart 和 HTML。此外,您可以设置预定义延迟,例如?mocky-delay=100ms。这对于测试超时条件或向网站添加加载指示器非常有用。

Tunneling

如果您正在开发 webhook 来处理来自第三方 API 或服务的回调,那么如果您想在本地进行调试,则需要启用这些云服务来调用您在本地计算机上运行的 API,除非您想通过打开计算机上的端口并获取静态 IP 来承担费用和潜在的安全问题。这些隧道服务将请求转发到您的本地主机,而无需您打开端口。

ngrok

ngrok是最受欢迎的之一。主机名是临时的,随机生成的,但如果你想要一个永久的主机名,他们确实有付费服务。对于大多数用例,免费版本就足够了。要使用 ngrok,你需要做的就是将 webhook URL 替换为 ngrok 提供的 URL,然后运行本地代理。

JSON 工具

代码美化

Code Beautify的 JSON 查看器可以漂亮地打印,将 JSON 转换为 XML 和 CSV 等等。

JSON Lint

JSON Lint是一个 JSON 验证器和重新格式化程序。

JSON 生成器

JSON 生成器可随机生成有效的 JSON 或基于您可以上传的架构的 JSON。这有助于生成大量测试数据。

JWT.io

如果您使用的 API 使用 JSON Web Tokens 进行身份验证,则需要快速进行 base64 解码并查看令牌内容。JWT.io是Auth0 提供的一项免费服务,可以完成此任务。

有关 JWT 如何工作以及 JWT 与不透明令牌如何比较的更多信息,请查看有关 RESTful API 上的身份验证和授权的指南。

性能测试

目前付费性能测试服务很少,这是有道理的,因为设置性能测试需要做很多工作。因此,免费服务往往需要做更多工作,尤其是对于托管服务,它可能会占用大量资源。

Apache Jmeter

Apache Jmeter是一个用于对 API 进行负载测试的开源工具。

Loader.io

Loader.io是一个对 API 执行负载测试的工具,可以快速生成大量流量。

CORS

许多 API,尤其是支持单页应用程序的私有 API,利用跨源资源共享来安全地对不同的域进行 AJAX 调用。

Moesif CORS

Chrome 的 CORS 扩展程序。这是我们自己开发的扩展程序,由 Moesif 创建,每周有超过 17,000 名用户使用。它可用于规避或更改 CORS 限制,以进行本地测试和调试。

来自我们读者的额外建议

我们欢迎读者提出建议,包括您使用的工具或您构建的工具。如果我们遗漏了您最喜欢的、有助于更好地使用 API 的工具,请随时在下面发表评论提出您的建议或给我们留言。

以下是 ExtendsClass 团队的建议:

  • 模拟服务器
  • REST 客户端

文章来源:The Best Free REST API Debugging Tools for Developing APIs

#你可能也喜欢这些API文章!