项目与 .restorm 文件
Restorm 项目存在于您自己的磁盘上。没有远程工作空间,也没有专有的同步机制: 您打开一个文件、保存它、提交它。
两种存储模式
Section titled “两种存储模式”单个 .restorm 文件
Section titled “单个 .restorm 文件”这是默认模式(文件 ▸ 新建,然后另存为)。整个项目都装在一个文件里,
默认为 YAML。另外还有两种序列化格式可选:json 和 json5。
文件 ▸ 打开文件夹。项目会在磁盘上被拆散成一棵目录树, 这让大型项目的 diff 细致得多:
- 根目录下有一个配置文件
restorm.conf,它只记录格式 (format: yaml | json | json5); - 每个目录下有一个索引文件(
index.yaml、index.json……); - 各个文件夹和文件命名为
<index> - <name>,其中索引会按同级项数量的宽度补零, 以便屏幕上的顺序就是磁盘上的顺序。被禁止的字符(<>:"/\|?*)会被替换成_,名称会被截断到 100 个字符。
在文件夹模式下,Ctrl+S 只写入当前标签页所对应的子树;
Ctrl+Shift+S(全部保存)则写入全部内容。

项目里包含什么
Section titled “项目里包含什么”- 项目树:文件夹、环境文件夹、所有协议的请求、场景;
- 各个环境及其变量,包括子环境;
- 自定义值列表和导入得来的枚举;
- 标签及其颜色;
- 附加在环境文件夹上的 API 文档;
- 保存为“存放在项目中”的快速设置;
- 一个项目标识(
_projectUuid)和一个格式版本号。
项目里不包含什么
Section titled “项目里不包含什么”这是刻意为之的,目的是让文件可以放心共享:
| 数据 | 它存在哪里 |
|---|---|
| 密钥 | 项目旁边的一个 .env 密钥文件 —— 参阅密钥 |
| 响应历史 | 放在项目旁边的一个 <project>.responses.zip 归档 |
| “用户”级快速设置 | 您的本地设置 |
| 收藏 | 应用的本地存储,按项目标识建立索引 |
| workbench 布局 | 您的本地设置,按项目建立索引 |
| 工作区设置 | <project-folder>/.restorm/settings.json |
实际效果是:您可以提交一个 .restorm 而不会泄露任何令牌,
而您的同事也不会收到您的标签页布局。
为 git 而生的序列化
Section titled “为 git 而生的序列化”有两项保证,它们的存在完全是为了让版本管理真正可用:
- 规范化的键顺序。 身份类的键排在最前面(
id、name、key、type、folderType、method、url),其余的按序排列。而数组的顺序永远不会被改动: 那是您自己的顺序。 - 以稳定方式派生的标识符。 一个实体的标识是根据它的语义路径计算出来的, 而不是随机生成的。两个人在同一位置添加同一个请求,会得到同一个标识, 这样合并时就能正确地配对实体。
结果就是:打开一个项目再重新保存而不做任何修改,不会产生任何 diff。 参阅内置 Git。
文件 ▸ 最近的文件会列出最近打开的十个项目;已失效的路径会被自动移除。 同一份列表也用于填充欢迎界面。