最初のワークスペース
デモAPIを使って、リクエスト、フォルダ、環境、シークレット、Gitを備えたワークスペースを一から作ります。
このチュートリアルでは、Alpenglowショップ用の自分のワークスペースを作ります。フォルダ内の2つのリクエスト、サーバのアドレスを持つ環境、キーチェーンに保管するパスワード、そのすべてを管理するGitリポジトリです。
- 所要時間:15分。
- 必要なもの:Echolot。最後のパートではGit(ターミナルで
git --version。macOSがインストールを案内します)。 - 学べること:ワークスペースがディスク上でどのように構成されているか、そしてコミットしても安全な理由。
1. ワークスペースを作る
- Echolotへようこそウインドウで、新規ワークスペース…を選びます。ワークスペースのウインドウからは、ファイル › 新規ワークスペース…(⌥⌘N)を選びます。
- 新規ワークスペースパネルで、名前を
Alpenglow Shopにして、~/Projectsなどのフォルダを選びます。Echolotが.echolot拡張子を付けます。 - 作成を選びます。
このワークスペースは空ですと表示されたウインドウが開きます。ディスク上では、Alpenglow Shop.echolotは、workspace.tomlと空のrequestsフォルダを含むフォルダです。Finderでは1つのファイルのように見え、ダブルクリックするとワークスペースが開きます。
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にして送信します。
テント1つ、Matterhorn 2Pが、価格とチューリッヒ・ベルンの在庫とともに返ります。リクエストはそれぞれ1つのファイルです。requests/catalog/get-product.req.tomlのようになります。
フォルダには、その中のすべてのリクエストに適用される認証、変数、スクリプトも設定できます。フォルダを参照してください。
4. アドレスを環境に移す
サーバのアドレスをすべてのリクエストに直接入力すると、サーバの切り替えが大変になります。代わりに環境に入れます。
- 表示 › 環境(⌥⌘E)を選びます。または、ページヘッダーの環境メニューを開いて環境を管理…を選びます。
- +(環境を追加)を選びます。新規環境が現れます。その名前を
Demoに変更します。 - 変数を追加を選びます。名前を
baseURL、値をhttps://demo.echolot.dev/v1にします。 Localという名前の2つ目の環境を追加し、baseURLをhttp://localhost:8787/v1にします。これはデモAPIを自分のMacで動かした場合のアドレスです。このチュートリアルでは動かしておく必要はありません。- ページヘッダーの環境メニューで、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が含まれます。EcholotはJSONのボディに対して、Content-Type: application/jsonを自動で追加します。
environments/demo.tomlを見てください。password変数はsecret = trueで、値なしで書かれています。値はこのMacのキーチェーンにだけあるので、ワークスペースを開く人は、それぞれ自分で設定します。シークレットを参照してください。
次のチュートリアルでは、このトークンを、必要なリクエストで使います。
6. ワークスペースをGitに入れる
EcholotにはGitのコマンドはありません。ワークスペースは通常のTOMLファイルなので、コードと同じようにGitを使います。
-
サイドバーの下部でワークスペースのメニューを開き、Finderに表示を選びます。
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自身のストレージに保存されます。
各ファイルは毎回同じ形式で書き込まれるため、差分には変更した部分だけが表示されます。
ほかの人が変更をプルすると、開いているウインドウは自動でそれを取り込みます。未保存の編集があるファイルがディスク上で変更された場合は、このリクエストはディスク上で変更されましたというバーが表示されます。ファイルの内容を使用か自分の変更を保持を選びます。 詳しくはGitとチームを参照してください。
次のステップ
- リクエストをつなぐ:Sign inのトークンを、必要なすべてのリクエストに送ります。
- 保護された環境:重要なサーバへの送信のたびに、Echolotが確認するようにします。
- ワークスペースのファイル:すべてのファイルとフィールド。
