Echolot
教程

你的第一个工作区

针对演示 API 从零创建工作区,包含请求、文件夹、环境、机密和 Git。

在本教程中,你将为 Alpenglow 商店创建自己的工作区:文件夹中的两个请求,保存服务器地址的环境,存放在钥匙串中的密码,以及管理这一切的 Git 仓库。

  • 用时: 15 分钟。
  • 你需要: Echolot,最后一部分还需要 Git(在“终端”中运行 git --version;macOS 会提示安装)。
  • 你将学到: 工作区在磁盘上是如何组织的,以及为什么可以放心提交。

1. 创建工作区

  1. 在欢迎使用 Echolot 窗口中选取新建工作区…。在工作区窗口中,选取文件 › 新建工作区…(⌥⌘N)。
  2. 在新建工作区面板中,把它命名为 Alpenglow Shop,并选择一个文件夹,例如 ~/Projects。Echolot 会加上 .echolot 扩展名。
  3. 选取创建。

随后会打开一个窗口,显示此工作区为空。在磁盘上,Alpenglow Shop.echolot 是一个文件夹,其中有 workspace.toml 和一个空的 requests 文件夹。在访达中它看起来像一个文件,双击它即可打开工作区。

2. 发送第一个请求

  1. 在空白页面上选取新建请求,或者文件 › 新建请求(⌘N)。请求会出现在边栏中,名称处于可编辑状态。

  2. 输入 List products,然后按 ↩。

  3. 方法保持为 GET。在 URL 栏中输入:

    https://demo.echolot.dev/v1/products?category=tents

    查询参数也会显示在参数标签页中,你可以在那里把它当作表格来编辑。

  4. 选取发送(⌘R,或 ⌘↩)。

响应窗格会显示 200 OK、耗时和大小。正文标签页中是 JSON 格式的商品。把它的视图切换为 JSON 树,可以折叠和展开列表。响应页面介绍了每个标签页。

没有“存储”命令:Echolot 会在你停止输入片刻后存储请求。边栏底部显示已全部存储。

3. 把请求放入文件夹

  1. 选取文件 › 新建文件夹(⇧⌘N),输入 Catalog,然后按 ↩。
  2. 把 List products 拖到 Catalog 上。
  3. 右键点按 Catalog,选取新建请求。把它命名为 Get product。
  4. 把它的 URL 设为 https://demo.echolot.dev/v1/products/TNT-MH-2P,然后发送。

你会得到一顶帐篷,Matterhorn 2P,以及它在苏黎世和伯尔尼的价格和库存。每个请求都是一个单独的文件:requests/catalog/get-product.req.toml。文件夹还可以为其中的所有请求提供认证、变量和脚本;参见文件夹。

4. 把地址移入环境

把服务器地址输入到每个请求中,会让切换服务器变得困难。请改为把它放进环境。

  1. 选取视图 › 环境(⌥⌘E),或者打开页面标题栏中的环境菜单,选取管理环境…。
  2. 选取 +(添加环境)。会出现一个新环境。把它的名称改为 Demo。
  3. 选取添加变量。把名称设为 baseURL,把值设为 https://demo.echolot.dev/v1。
  4. 添加第二个名为 Local 的环境,把 baseURL 设为 http://localhost:8787/v1。那是在你自己的 Mac 上运行的演示 API;本教程不需要它在运行。
  5. 在页面标题栏的环境菜单中选取 Demo。
  6. 回到 List products,把它的 URL 改为 {{baseURL}}/products?category=tents。对 Get product 也这样做:{{baseURL}}/products/TNT-MH-2P。

输入 {{ 时,会弹出列表提示你的变量。在 URL 中,{{baseURL}} 显示为一个标记;把指针停在上面可查看它在当前环境中的值。再次发送这两个请求:它们仍然发往演示 API。选取 Local 后,它们就会改为发往你的 Mac,其他什么都不用改。

“环境”页面,选中了一个环境:它的 baseURL 和 wsURL 变量,以及一个机密密码

5. 保管好密码

登录商店需要密码。密码绝不能写入你要提交的文件。

  1. 在环境页面选择 Demo,然后选取添加变量。

  2. 把它命名为 password,并勾选它的密钥框。值栏会变成密码栏,并显示未在这台 Mac 上设置。

  3. 输入 alpenglow,然后按 ↩(或选取存储)。钥匙图标表示该值已存入钥匙串。

  4. 创建文件夹 Auth,并在其中创建请求 Sign in。把它的方法设为 POST,URL 设为 {{baseURL}}/auth/token。

  5. 在正文标签页中选取 JSON,然后输入:

    { "email": "heidi@alpenglow.ch", "password": "{{password}}" }
  6. 发送。

响应是 200 OK,并带有 access_token。对于 JSON 正文,Echolot 会自动添加 Content-Type: application/json。看一下 environments/demo.toml:password 变量在其中,带有 secret = true,但没有值。值只保存在这台 Mac 的钥匙串中,所以每个打开该工作区的人都要设置自己的;参见机密。

下一篇教程会把这个令牌用于需要它的请求。

6. 把工作区放入 Git

Echolot 自己没有 Git 命令:工作区是普通的 TOML 文件,所以你可以像对待代码一样使用 Git。

  1. 在边栏底部打开工作区菜单,选取在访达中显示。把 Alpenglow Shop.echolot 文件夹拖到“终端”的图标上,或者用 cd 进入它。

  2. 运行:

    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 与团队。

后续步骤

本页内容