Hoppscotch 与 Postman:开源 API 测试指南

**由 Chigozie Oduah 撰写✏️**

想要开发和测试您的 API?Hoppscotch 是一款出色的开源工具,我将解释如何设置它。然后,我将介绍您可以使用 Hoppscotch 测试的 API 以及如何测试它们。之后,我将把它与它的两个替代方案进行比较:OpenAPI DevTools 和 Postman。

如何设置 Hoppscotch

有多种方法可以设置 Hoppscotch,但在本节中,我将介绍桌面应用程序和 Web 客户端,因为它们最有可能是您与之交互的。桌面应用程序是迄今为止最容易设置的。您需要做的就是:

  • 前往 Hoppscotch 客户端下载页面
  • 选择您的操作系统
  • 单击与您的计算机架构匹配的下载选项:
  • Downloading Hoppscotch Client

    下载文件后,按照您的操作系统的安装过程进行,然后您应该会在应用程序库中看到桌面应用程序。

    设置 Hoppscotch Web 客户端

    在 Hoppscotch 客户端下载页面上,您可能注意到操作系统选项旁边列出了“Web App”选项。单击“Web App”选项,出现的“打开 Web App”按钮将在新选项卡中打开 Web 客户端。

    在默认设置下,Web 客户端仅允许您向互联网上公开的 API 发送请求。这意味着尝试向本地托管的 API(如“localhost”和“127.0.0.1”)发送请求将显示以下错误消息:

    Hoppscotch Error Message Example

    发生这种情况的原因是,默认情况下,Web 应用程序的拦截器设置为 Hoppscotch 的代理服务,该服务托管在 `https://proxy.hoppscotch.io/` 上,并且无法访问互联网上无法访问的 API。

    要允许访问本地托管的 API,您需要下载 Hoppscotch 浏览器扩展并将其设置为拦截器。您只能在基于 Chrome 和基于 Firefox 的浏览器上安装该扩展,因此需要记住这一点。要安装浏览器扩展,请按照以下步骤操作:

  • 选择左侧导航窗格中的“设置”选项卡
  • 向下滚动到拦截器部分
  • 选择浏览器扩展选项
  • 单击适用于您浏览器的选项,您将进入浏览器扩展程序商店中的扩展程序页面
  • 最后,安装扩展并刷新 Web 客户端
  • Install Hoppscotch Extension And Refresh Web Client

    刷新 Web 客户端后,您应该会看到 **浏览器扩展** 选项旁边的文本从 **未报告** 更改为扩展的版本号。

    安装扩展程序后,您现在可以向本地可用的 API 和公开可用的 API 发送请求。在下一节中,我将介绍可以使用 Hoppscotch 测试的 API 类型以及如何测试它们。

    使用 Hoppscotch 测试 API

    在本节中,我将介绍如何使用 Hoppscotch 测试 REST、GraphQL 和 WebSocket API。为了方便起见,我创建了一个包含 API 代码的 GitHub 存储库。

    测试 REST API

    REST API 旨在允许 Web 应用程序在后端创建、读取、更新和删除数据。

    例如,让我们想象一个具有以下功能的基本 RESTful API:

    在 REST API 中,创建、读取、更新和删除数据的操作分别使用 POST、GET、PUT 和 DELETE 请求方法表示。

    在我们的 API 中,对 `/message` 端点的 POST 和 PUT 请求分别更改和添加文本到对 `/message` 的 GET 请求响应的消息中,而 DELETE 请求允许清除文本。

    要向 `/message` 发送 GET 请求,首先需要确保您位于左侧导航窗格中的 **REST** 选项卡中:

    GET Request in Hoppscotch Part 1

    然后将端点的URL改为文本框,点击**发送**:

    如果我们的 API 托管在“http://127.0.0.1:5000”,则端点的 URL 将是“http://127.0.0.1:5000/message”。

    发送 DELETE 请求与发送 GET 请求类似。要发送 DELETE 请求,请将请求方法选项从 **GET** 更改为 **DELETE**,然后单击 **发送**:

    向端点发送 POST 请求:

  • 在请求方法选项中选择POST
  • 转到“正文”选项卡
  • 选择“text/plain”作为内容类型
  • 编写请求主体(例如“Hi, world”)
  • 点击发送
  • 发送 PUT 请求与 POST 请求类似。您需要做的就是将请求方法选项设置为 PUT:

    这四种请求方法涵盖了通常使用 REST API 执行的大多数操作,现在您知道如何在 Hoppscotch 中向它们发送请求。现在,让我们介绍一下您可以使用 Hoppscotch 测试的下一种 API:GraphQL API。

    测试 GraphQL API

    为了使操作与我在上一节中描述的基本 RESTful API 类似,我将制作以下 GraphQL API 模式:

    type Query {
        message: String   # get the message
    }
    
    type Mutation {
        changeMessage(message: String): String     # change the content of the message
        addText(text: String): String   # append a text to the message
        deleteText: String   # clear the message
    }
    GraphQL Tab
  • 将 API 的 URL 写入文本栏。如果我们将 API 托管在 http://127.0.0.1:8000/graphql 上,那么这就是我们要插入的 URL。
  • 单击“连接”
  • 将您的查询或变更写入查询文本框。对于我们的 GraphQL API,我们的查询可以是以下任何一种:
  • # 1.
    query {
      message
    }
    
    # 2.
    mutation {
      changeMessage(message: "Hi, world")     # change text to "Hi, world"
    }
    
    # 3.
    mutation {
      deleteText
    }
    
    # 4.
    mutation {
      addText(message: ", and all") # Changes "Hi, world" to "Hi, world, and all"
    }

    编写查询或变异后,单击 **运行** 以将其发送到 API。以下是步骤的直观演示:

    Send API With Run

    现在您已经了解了如何使用 Hoppscotch 测试 GraphQL API。在下一节中,我将介绍如何使用 Hoppscotch 测试实时 WebSocket API。

    测试 WebSocket

    使用 Hoppscotch 测试 WebSocket API 非常简单。您需要做的就是:

  • 确保您位于左侧导航窗格中的“实时”选项卡中
  • 确保您位于“实时”页面上的“WebSocket”选项卡中
  • 在文本框中插入 WebSocket 服务器的 URL
  • 单击“连接”以连接到服务器
  • 如果成功建立连接,您应该会在**日志**部分看到“已连接到”消息。服务器发送的任何消息也将显示在**日志**部分。您还可以通过在**消息**框中编写要发送到服务器的文本并单击**发送**按钮来向服务器发送消息。

    以下动画展示了这些过程:

    在 API 的 GitHub 存储库中,WebSocket API 将托管在 `http://127.0.0.1:8080`。它每秒发送当前日期和时间,并在您向其发送消息“end”时停止。

    有哪些可以替代 Hoppscotch 的东西?

    更好地了解 Hoppscotch 的最佳方法是查看它与同类别的其他工具的比较。因此,在本节中,我将概述两种流行的替代方案:Postman 和 OpenAPI DevTools。

    邮差

    Postman 是一个用于构建和测试类似 Hoppscotch 的 API 的平台。然而,与 Hoppscotch 不同,Postman 不是开源的,但它提供了 Hoppscotch 所没有的额外功能。但是,有些功能需要遵循他们的订阅计划之一。Postman 提供的一些 Hoppscotch 所没有的功能包括:

  • 创建模拟服务器(免费计划中有所限制)
  • 模拟真实世界的使用情况和负载测试 API
  • 编写和发布 API 文档
  • 但是 Hoppscotch 具有 Postman 所没有的功能,或者免费计划中不可用或受限的功能,包括:

  • 无限数量的工作区、收藏夹和协作者
  • 自托管应用程序实例
  • Hoppscotch 和 Postman 之间的选择取决于您是否需要 Postman 独有的功能。如果您不需要任何额外功能,Hoppscotch 是开源的,并且为您提供了更大的灵活性,因此它是一个很好的选择。

    OpenAPI 开发者工具

    OpenAPI DevTools 是一款 Chrome 扩展程序,可让您记录和监控 Web 应用程序与其 API 的交互方式。OpenAPI DevTools 和 Hoppscotch 的功能类似,但方式不同。

    您应该使用这两种工具中的哪一种取决于您需要做什么。例如,如果您正在构建或测试 API,您可能更喜欢使用 Hoppscotch,因为与 OpenAPI DevTools 不同,您可以编写请求将它们发送到 API 以查看它们的作用。Hoppscotch 和 Postman 还允许您运行自动化测试,而 OpenAPI DevTools 则不具备此功能。

    但是使用 OpenAPI DevTools,您只能查看 Web 应用程序如何与 API 交互,这有助于了解网站的流程,进而有助于调试和文档编写。

    OpenAPI DevTools 还具有生成 OpenAPI 规范的优势,这是一种描述和记录 REST API 的标准化格式。

    然而,Hoppscotch 和 OpenAPI DevTools 的工作方式不同,这意味着它们可以一起使用。因此,它们更像是互补工具,而不是完全的替代品。

    下一步是什么?

    Hoppscotch 使开发和测试 API 变得简单。您可以通过查看其导入器文档页面来了解如何导入数据。

    如果您想了解有关 OpenAPI DevTool 的更多信息以及它与 Hoppscotch 或 Postman 的不同之处,您可以继续阅读我之前关于使用 OpenAPI DevTools 探索和测试 API 行为的指南。

    监控生产中失败和缓慢的 GraphQL 请求

    虽然 GraphQL 具有一些用于调试请求和响应的功能,但确保 GraphQL 可靠地为你的生产应用程序提供资源却变得更加困难。

    如果您有兴趣确保对后端或第三方服务的网络请求成功,请尝试 LogRocket。

    GraphQL LogRocket Demo

    LogRocket 就像是网页和移动应用的 DVR,可以记录您网站上发生的所有事情。您无需猜测问题发生的原因,而是可以汇总和报告有问题的 GraphQL 请求,以快速了解根本原因。此外,您还可以跟踪 Apollo 客户端状态并检查 GraphQL 查询的键值对。

    LogRocket 会对您的应用进行工具化,以记录基准性能时间,例如页面加载时间、第一个字节的时间、慢速网络请求,还会记录 Redux、NgRx 和 Vuex 操作/状态。开始免费监控。