你的第一个工作区
针对演示 API 从零创建工作区,包含请求、文件夹、环境、机密和 Git。
在本教程中,你将为 Alpenglow 商店创建自己的工作区:文件夹中的两个请求,保存服务器地址的环境,存放在钥匙串中的密码,以及管理这一切的 Git 仓库。
- 用时: 15 分钟。
- 你需要: Echolot,最后一部分还需要 Git(在“终端”中运行
git --version;macOS 会提示安装)。 - 你将学到: 工作区在磁盘上是如何组织的,以及为什么可以放心提交。
1. 创建工作区
- 在欢迎使用 Echolot 窗口中选取新建工作区…。在工作区窗口中,选取文件 › 新建工作区…(⌥⌘N)。
- 在新建工作区面板中,把它命名为
Alpenglow Shop,并选择一个文件夹,例如~/Projects。Echolot 会加上.echolot扩展名。 - 选取创建。
随后会打开一个窗口,显示此工作区为空。在磁盘上,Alpenglow Shop.echolot 是一个文件夹,其中有 workspace.toml 和一个空的 requests 文件夹。在访达中它看起来像一个文件,双击它即可打开工作区。
2. 发送第一个请求
-
在空白页面上选取新建请求,或者文件 › 新建请求(⌘N)。请求会出现在边栏中,名称处于可编辑状态。
-
输入
List products,然后按 ↩。 -
方法保持为 GET。在 URL 栏中输入:
https://demo.echolot.dev/v1/products?category=tents查询参数也会显示在参数标签页中,你可以在那里把它当作表格来编辑。
-
选取发送(⌘R,或 ⌘↩)。
响应窗格会显示 200 OK、耗时和大小。正文标签页中是 JSON 格式的商品。把它的视图切换为 JSON 树,可以折叠和展开列表。响应页面介绍了每个标签页。
没有“存储”命令:Echolot 会在你停止输入片刻后存储请求。边栏底部显示已全部存储。
3. 把请求放入文件夹
- 选取文件 › 新建文件夹(⇧⌘N),输入
Catalog,然后按 ↩。 - 把 List products 拖到 Catalog 上。
- 右键点按 Catalog,选取新建请求。把它命名为
Get product。 - 把它的 URL 设为
https://demo.echolot.dev/v1/products/TNT-MH-2P,然后发送。
你会得到一顶帐篷,Matterhorn 2P,以及它在苏黎世和伯尔尼的价格和库存。每个请求都是一个单独的文件:requests/catalog/get-product.req.toml。文件夹还可以为其中的所有请求提供认证、变量和脚本;参见文件夹。
4. 把地址移入环境
把服务器地址输入到每个请求中,会让切换服务器变得困难。请改为把它放进环境。
- 选取视图 › 环境(⌥⌘E),或者打开页面标题栏中的环境菜单,选取管理环境…。
- 选取 +(添加环境)。会出现一个新环境。把它的名称改为
Demo。 - 选取添加变量。把名称设为
baseURL,把值设为https://demo.echolot.dev/v1。 - 添加第二个名为
Local的环境,把baseURL设为http://localhost:8787/v1。那是在你自己的 Mac 上运行的演示 API;本教程不需要它在运行。 - 在页面标题栏的环境菜单中选取 Demo。
- 回到 List products,把它的 URL 改为
{{baseURL}}/products?category=tents。对 Get product 也这样做:{{baseURL}}/products/TNT-MH-2P。
输入 {{ 时,会弹出列表提示你的变量。在 URL 中,{{baseURL}} 显示为一个标记;把指针停在上面可查看它在当前环境中的值。再次发送这两个请求:它们仍然发往演示 API。选取 Local 后,它们就会改为发往你的 Mac,其他什么都不用改。

5. 保管好密码
登录商店需要密码。密码绝不能写入你要提交的文件。
-
在环境页面选择 Demo,然后选取添加变量。
-
把它命名为
password,并勾选它的密钥框。值栏会变成密码栏,并显示未在这台 Mac 上设置。 -
输入
alpenglow,然后按 ↩(或选取存储)。钥匙图标表示该值已存入钥匙串。 -
创建文件夹
Auth,并在其中创建请求Sign in。把它的方法设为 POST,URL 设为{{baseURL}}/auth/token。 -
在正文标签页中选取 JSON,然后输入:
{ "email": "heidi@alpenglow.ch", "password": "{{password}}" } -
发送。
响应是 200 OK,并带有 access_token。对于 JSON 正文,Echolot 会自动添加 Content-Type: application/json。看一下 environments/demo.toml:password 变量在其中,带有 secret = true,但没有值。值只保存在这台 Mac 的钥匙串中,所以每个打开该工作区的人都要设置自己的;参见机密。
下一篇教程会把这个令牌用于需要它的请求。
6. 把工作区放入 Git
Echolot 自己没有 Git 命令:工作区是普通的 TOML 文件,所以你可以像对待代码一样使用 Git。
-
在边栏底部打开工作区菜单,选取在访达中显示。把
Alpenglow Shop.echolot文件夹拖到“终端”的图标上,或者用cd进入它。 -
运行:
git init git add . git commit -m "Alpenglow Shop: catalog and sign-in"
你提交的内容:
Alpenglow Shop.echolot/
├── workspace.toml
├── environments/
│ ├── demo.toml
│ └── local.toml
└── requests/
├── _folder.toml
├── auth/
│ ├── _folder.toml
│ ├── sign-in.req.toml
│ └── sign-in.body.json
└── catalog/
├── _folder.toml
├── get-product.req.toml
└── list-products.req.toml其中没有任何机密,也不需要 .gitignore:响应和历史记录保存在工作区之外,位于 Echolot 自己的储存空间中。每个文件每次都以同样的方式写入,所以 diff 只会显示你改动的部分。
别人拉取更改时,已打开的窗口会自动更新。如果某个文件在磁盘上改变,而你对它有未存储的编辑,会出现一个提示栏:此请求已在磁盘上更改,可选取使用文件中的版本或保留我的版本。详见 Git 与团队。
