Echolot
チュートリアル

最初のワークスペース

デモAPIを使って、リクエスト、フォルダ、環境、シークレット、Gitを備えたワークスペースを一から作ります。

このチュートリアルでは、Alpenglowショップ用の自分のワークスペースを作ります。フォルダ内の2つのリクエスト、サーバのアドレスを持つ環境、キーチェーンに保管するパスワード、そのすべてを管理するGitリポジトリです。

  • 所要時間:15分。
  • 必要なもの:Echolot。最後のパートではGit(ターミナルでgit --version。macOSがインストールを案内します)。
  • 学べること:ワークスペースがディスク上でどのように構成されているか、そしてコミットしても安全な理由。

1. ワークスペースを作る

  1. Echolotへようこそウインドウで、新規ワークスペース…を選びます。ワークスペースのウインドウからは、ファイル › 新規ワークスペース…(⌥⌘N)を選びます。
  2. 新規ワークスペースパネルで、名前をAlpenglow Shopにして、~/Projectsなどのフォルダを選びます。Echolotが.echolot拡張子を付けます。
  3. 作成を選びます。

このワークスペースは空ですと表示されたウインドウが開きます。ディスク上では、Alpenglow Shop.echolotは、workspace.tomlと空のrequestsフォルダを含むフォルダです。Finderでは1つのファイルのように見え、ダブルクリックするとワークスペースが開きます。

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にして送信します。

テント1つ、Matterhorn 2Pが、価格とチューリッヒ・ベルンの在庫とともに返ります。リクエストはそれぞれ1つのファイルです。requests/catalog/get-product.req.tomlのようになります。 フォルダには、その中のすべてのリクエストに適用される認証、変数、スクリプトも設定できます。フォルダを参照してください。

4. アドレスを環境に移す

サーバのアドレスをすべてのリクエストに直接入力すると、サーバの切り替えが大変になります。代わりに環境に入れます。

  1. 表示 › 環境(⌥⌘E)を選びます。または、ページヘッダーの環境メニューを開いて環境を管理…を選びます。
  2. +(環境を追加)を選びます。新規環境が現れます。その名前をDemoに変更します。
  3. 変数を追加を選びます。名前をbaseURL、値をhttps://demo.echolot.dev/v1にします。
  4. Localという名前の2つ目の環境を追加し、baseURLをhttp://localhost:8787/v1にします。これはデモAPIを自分のMacで動かした場合のアドレスです。このチュートリアルでは動かしておく必要はありません。
  5. ページヘッダーの環境メニューで、Demoを選びます。
  6. List productsに戻って、URLを{{baseURL}}/products?category=tentsに変更します。Get productも同じように、{{baseURL}}/products/TNT-MH-2Pにします。

{{と入力すると、変数の一覧が表示されます。URLの中の{{baseURL}}はトークンとして表示されます。ポインタを重ねると、現在の環境での値が表示されます。 両方のリクエストをもう一度送信してください。どちらも引き続きデモAPIに届きます。Localを選べば、ほかには何も変更せずに、リクエストは代わりにMacに向かいます。

環境のページで環境を1つ選んだ状態:変数のbaseURLとwsURL、そしてシークレットのpassword

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が含まれます。EcholotはJSONのボディに対して、Content-Type: application/jsonを自動で追加します。 environments/demo.tomlを見てください。password変数はsecret = trueで、値なしで書かれています。値はこのMacのキーチェーンにだけあるので、ワークスペースを開く人は、それぞれ自分で設定します。シークレットを参照してください。

次のチュートリアルでは、このトークンを、必要なリクエストで使います。

6. ワークスペースをGitに入れる

EcholotにはGitのコマンドはありません。ワークスペースは通常のTOMLファイルなので、コードと同じようにGitを使います。

  1. サイドバーの下部でワークスペースのメニューを開き、Finderに表示を選びます。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自身のストレージに保存されます。 各ファイルは毎回同じ形式で書き込まれるため、差分には変更した部分だけが表示されます。

ほかの人が変更をプルすると、開いているウインドウは自動でそれを取り込みます。未保存の編集があるファイルがディスク上で変更された場合は、このリクエストはディスク上で変更されましたというバーが表示されます。ファイルの内容を使用か自分の変更を保持を選びます。 詳しくはGitとチームを参照してください。

次のステップ

このページの内容