Echolot
工作区

导出

把工作区或文件夹导出为 Echolot 工作区、Postman、Insomnia 或 Bruno 集合,并把请求导出为 cURL、代码或 HAR。

导出工作区或其中的某个文件夹,是为了把它交给使用其他工具的人,或者把副本带到另一台 Mac。Echolot 写出四种格式:Echolot 工作区、Postman Collection v2.1、Insomnia v5 文件和 Bruno 集合。机密值绝不会离开你的钥匙串。

导出工作区或文件夹

  1. 开始导出:
    • 整个工作区:文件 › 导出工作区…(⇧⌘E),或边栏中请求旁的 + 菜单里的导出工作区…。
    • 一个文件夹:按住 Control 键点按它并选择导出文件夹…,或选中它并选择文件 › 导出文件夹…。
  2. 选择一种格式。每种格式都会说明它能容纳多少个请求。
  3. 保持勾选包括环境,会同时导出环境;取消勾选则不导出。
  4. 点按导出…,选择位置,然后点按导出。

Echolot 会建议一种格式:能容纳所有请求时建议 Postman,否则建议容纳最多的格式;没有其他格式能容纳任何请求时,则建议 Echolot 工作区。一种格式如果一个请求也容纳不了,就无法选择。

Alpenglow 的“导出工作区”面板:四种格式,选中了 Postman Collection v2.1,显示每种格式能容纳 29 个请求中的多少个,以及哪些类型不包含在内

格式

格式用途能容纳的请求类型写出为
Echolot 工作区“全部内容,包括各类请求,可用于另一台 Mac 或团队成员。”全部工作区文件夹(.echolot)
Postman Collection v2.1“大多数 API 工具都能导入的格式:Postman、Insomnia、Bruno、Hoppscotch、Apidog。”HTTP、GraphQL一个 .postman_collection.json 文件;带上环境时是一个文件夹
Insomnia v5“一个适用于 Insomnia 10 及更高版本的 YAML 文件,包含环境。”HTTP、GraphQL、WebSocket、Socket.IO、gRPC一个 .yaml 文件
Bruno 集合“一个由 .bru 文件组成的文件夹,可存入 Git 并在 Bruno 中打开。”HTTP、GraphQL一个文件夹

MQTT 请求和已存储的 MCP 调用只会进入 Echolot 工作区。导出之前,每种格式都会显示它不包含的类型。对于 Alpenglow,Postman 显示“29 个请求中的 21 个 · MCP、MQTT、Socket.IO、WebSocket 和 gRPC 不包含在内”。

文件夹会带上什么

文件夹导出时会带上它所继承的内容:工作区和外层文件夹的变量、认证和脚本。这样,请求在另一个工具中发送的内容,就与在 Echolot 中发送的一致。

报告

导出之后,面板会说明写出了什么,例如“已将 21 个请求、7 个文件夹、3 个环境以 Postman Collection v2.1 格式导出到 …”。有内容要说明时,后面会有两个列表:

  • 未包含:该格式没有位置容纳的每个请求,以及原因(“Postman Collection v2.1 没有 MQTT 请求。”)。
  • 导出时有变化:每一处导出后变得不同的部分。

点按在访达中显示查看导出结果,或点按关闭。

在 Postman、Insomnia 和 Bruno 中通常会有变化的内容:

  • 响应捕获不会导出。其他工具通过脚本设置变量。
  • 各请求的设置(超时、TLS、重定向、HTTP 版本)不会导出,除非该格式有相同的设置。
  • 检查会在对方有对应功能的地方变成对方工具的测试。报告会统计没有对应功能的那些,例如 JSON Schema、OpenAPI 和 JSONPath 过滤检查。
  • 脚本是为 Postman 的 pm API 写的。它们原样进入 Postman;Insomnia 的则改写成 insomnia;Bruno 的原样带过去,可能需要按 Bruno 的 API 做修改。
  • 对方工具没有对应功能的动态值会按原样保留。发送到那里之前请先替换它们。
  • 文件正文指向文件在你 Mac 上的路径。在打开集合的地方重新选择文件。
  • 对方工具没有的认证会被省略或更改,报告会指明。
  • 通过 WebSocket 的 GraphQL 订阅会变成普通的 GraphQL 请求,GraphQL 文件上传不会导出。

机密留在原处

在每种格式中,机密变量都只导出名称,不带它们的值。打开导出内容的人在自己的工具中设置这些值。

直接输入在认证或标头字段中、而不是保存在机密变量里的密码、令牌或密钥,会以明文写出。报告会统计它们:“有 1 个密码、令牌或密钥以明文写入……”。在 Alpenglow 中,就是 Auth › Orders with OAuth 2 的 OAuth 2.0 客户端密钥。分享文件之前,请把这类值移到钥匙串。见机密。

Echolot 工作区副本

以 Echolot 工作区格式导出的是一个新的工作区,有它自己的 ID,因此不与你的工作区共用任何钥匙串机密。

  • 整个工作区会带上一切:请求、环境、MCP 服务器、规范、模拟、流程和共享的助手对话。
  • 文件夹会带上环境、MCP 服务器和规范,并保持自己的位置:上层文件夹随之而来,每个只包含下一层,因此它所继承的内容以及请求之间的引用仍然有效。流程、模拟和共享的助手对话留在工作区中;报告会说明这一点。

Git 自己的文件夹和访达的 .DS_Store 文件不会被复制。

导出可以放在哪里

Echolot 绝不会把导出内容写在它所来自的工作区之上、之内或周围。你选择的文件或文件夹已存在时,Echolot 会把旧的移到废纸篓,并在原位置写入导出内容。

在命令行中

echolot export 写出同样的格式:

echolot export alpenglow.postman_collection.json -w Alpenglow.echolot --format postman
echolot export orders-bruno -w Alpenglow.echolot --format bruno --folder orders --no-environments

--format 是 echolot、postman、insomnia 或 bruno。某种格式没有位置容纳的内容会在标准错误中指明。见导入和导出。

把请求拷贝为代码

在请求页面中,针对打开的请求:

  • 请求 › 拷贝为 cURL(⌥⌘C)会把一条 curl 命令放到剪贴板,其中的变量和机密已解析。
  • 请求 › 生成代码…(⌥⌘G)会把请求显示为代码,其中的变量已解析。脚本不会运行,机密按原样显示。选择一种语言,然后点按拷贝或存储…。

“生成代码”支持 cURL、Swift(URLSession)、JavaScript(fetch 和 axios)、TypeScript(fetch)、Python(requests 和 httpx)、Go(net/http)、Kotlin(OkHttp)、Java(HttpClient)、C#(HttpClient)、PHP(cURL)和 Rust(reqwest)。

要添加一种语言,请点按打开模板文件夹,并把一个 .template 文件放进去。它的第一行以注释形式给出它在列表中的名称:{{! Ruby · Net::HTTP }}。与内置模板文件名相同的模板,例如 python-requests.template,会取代它。

代码和 cURL 命令中含有请求的机密明文。不要把它们粘贴到别人能看到的地方。

把一次交换导出为 HAR

要保留或分享一次交换的原貌,请选择请求 › 将交换记录导出为 HAR…,或响应正文上方存储菜单中的将交换记录导出为 HAR…。HAR 文件包含请求和响应。

运行器会把一次运行的所有交换导出为一个 HAR 文件,命令行中的 echolot run --reporter har 也一样。

响应正文上方的存储菜单中还有存储正文…、在默认 App 中打开,以及对压缩的或 gRPC 响应提供的存储编码的正文…:即到达时的原始字节。

规范从规范页面导出。

本页内容