Echolot
ワークスペース

書き出し

ワークスペースまたはフォルダを、Echolotワークスペース、Postman、Insomnia、Brunoのコレクションとして書き出す方法と、リクエストをcURL、コード、HARとして書き出す方法を説明します。

ワークスペースまたはそのフォルダを書き出すと、ほかのツールを使う人に渡したり、別のMacにコピーを渡したりできます。Echolotは4つの形式で書き出せます。Echolotワークスペース、Postman Collection v2.1、Insomnia v5ファイル、Brunoコレクションです。シークレットの値は、キーチェーンの外には出ません。

ワークスペースまたはフォルダを書き出す

  1. 書き出しを開始します。
    • ワークスペース全体: ファイル › ワークスペースを書き出す…(⇧⌘E)、またはサイドバーのリクエストの横にある+メニューのワークスペースを書き出す…。
    • 1つのフォルダ: フォルダをControlキーを押しながらクリックしてフォルダを書き出す…を選ぶか、フォルダを選択してファイル › フォルダを書き出す…を選びます。
  2. 形式を選びます。各形式には、リクエストをいくつ含められるかが表示されます。
  3. 環境も書き出すには環境を含めるにチェックを入れたままにします。含めない場合は、チェックを外します。
  4. 書き出す…をクリックし、保存先を選んで、書き出すをクリックします。

Echolotは形式を提案します。すべてのリクエストを含められる場合はPostman、そうでなければ最も多く含められる形式、ほかのどの形式でも1件も含められない場合はEcholotワークスペースです。リクエストを1件も含められない形式は、選べません。

Alpenglowのワークスペースを書き出すシート。4つの形式が並び、Postman Collection v2.1が選択されている。29件のリクエストのうち、各形式がいくつ含められるかと、含まれない種類が表示されている

形式

形式用途含められるリクエストの種類書き出される形
Echolotワークスペース「あらゆる種類のリクエストを含むすべて。別のMacやチームメンバー向けです。」すべてワークスペースのフォルダ(.echolot)
Postman Collection v2.1「ほとんどのAPIツールが読み込める形式:Postman、Insomnia、Bruno、Hoppscotch、Apidog。」HTTP、GraphQL.postman_collection.jsonファイル。環境も含める場合はフォルダ
Insomnia v5「Insomnia 10以降用の1つのYAMLファイル(環境を含む)。」HTTP、GraphQL、WebSocket、Socket.IO、gRPC.yamlファイル
Brunoコレクション「Gitで管理し、Brunoで開ける.bruファイルのフォルダ。」HTTP、GraphQLフォルダ

MQTTリクエストと保存済みのMCP呼び出しは、Echolotワークスペースにだけ入ります。書き出す前に、各形式が含められない種類が表示されます。Alpenglowの場合、Postmanには「29件中21件のリクエスト · MCP、MQTT、Socket.IO、WebSocket、gRPCは含まれません」と表示されます。

フォルダに含まれるもの

フォルダは、継承しているものと一緒に書き出されます。ワークスペースと、それを囲むフォルダの変数、認証、スクリプトです。そのため、リクエストは、Echolotで送信する内容と同じものを、ほかのツールでも送信します。

レポート

書き出しの後、シートには書き出された内容が表示されます。たとえば「21件のリクエスト、7個のフォルダ、3個の環境をPostman Collection v2.1として…に書き出しました。」のようにです。伝えることがある場合は、次の2つのリストが続きます。

  • 除外: その形式に入れる場所がないすべてのリクエストと、その理由(「Postman Collection v2.1にはMQTTリクエストを入れる場所がありません。」)。
  • 書き出し時に変更: 異なる内容で書き出されたすべての部分。

書き出したものを確認するにはFinderに表示をクリックします。閉じるには閉じるをクリックします。

Postman、Insomnia、Brunoで通常変わるものは次のとおりです。

  • レスポンスのキャプチャは書き出されません。ほかのツールでは、スクリプトから変数を設定します。
  • リクエストごとの設定(タイムアウト、TLS、リダイレクト、HTTPバージョン)は、その形式に同じ設定がある場合を除き、書き出されません。
  • チェックは、同等のものがあるツールではそのツールのテストになります。ないものは、JSON Schema、OpenAPI、JSONPathフィルタのチェックなど、レポートに件数が表示されます。
  • スクリプトは、Postmanのpm API向けに書かれています。Postmanにはそのまま渡され、Insomnia向けではinsomniaに置き換わり、Bruno向けはそのまま渡されますが、BrunoのAPIに合わせて編集が必要なことがあります。
  • ほかのツールに同等のものがない動的な値は、書かれたまま残されます。そこに送信する前に置き換えてください。
  • ファイルのボディは、あなたのMac上のファイルのパスを指します。コレクションを開いた先で、ファイルを選び直してください。
  • ほかのツールにない認証は、除外されるか変更され、レポートにその名前が表示されます。
  • WebSocket経由のGraphQLサブスクリプションは通常のGraphQLリクエストになり、GraphQLのファイルアップロードは書き出されません。

シークレットは手元に残る

シークレット変数は、どの形式でも、値なしで名前だけが書き出されます。書き出しを開いた人が、自分のツールで値を設定します。

シークレット変数に入れずに、認証やヘッダーのフィールドに直接入力したパスワード、トークン、キーは、平文で書き出されます。レポートにはその件数が表示されます。「パスワード、トークン、キーが1件、平文で書き出されます…」。Alpenglowでは、Auth › Orders with OAuth 2のOAuth 2.0クライアントシークレットがこれに当たります。ファイルを共有する前に、そのような値をキーチェーンに移してください。シークレットを参照してください。

Echolotワークスペースのコピー

Echolotワークスペースとしての書き出しは、独自のIDを持つ新しいワークスペースになるので、キーチェーンのシークレットをあなたのものと共有しません。

  • ワークスペース全体では、すべてが含まれます。リクエスト、環境、MCPサーバ、仕様、モック、フロー、共有したアシスタントの会話です。
  • フォルダでは、環境、MCPサーバ、仕様が含まれ、フォルダの位置が保たれます。その上位のフォルダも、次の1つ下のフォルダだけを持つ形で含まれるので、継承される内容とリクエスト間の参照は変わりません。フロー、モック、共有したアシスタントの会話はワークスペースに残り、レポートにそのことが表示されます。

Git自身のフォルダと、Finderの.DS_Storeファイルはコピーされません。

書き出せる場所

Echolotは、書き出しを、元のワークスペースの上、中、周囲に書き込むことはありません。すでに存在するファイルまたはフォルダを選んだ場合、Echolotは古いものをゴミ箱に入れ、その場所に書き出しを書き込みます。

コマンドラインで

echolot exportは、同じ形式で書き出します。

echolot export alpenglow.postman_collection.json -w Alpenglow.echolot --format postman
echolot export orders-bruno -w Alpenglow.echolot --format bruno --folder orders --no-environments

--formatはecholot、postman、insomnia、brunoのいずれかです。形式に入れる場所がないものは、標準エラー出力に名前が表示されます。読み込みと書き出しを参照してください。

リクエストをコードとしてコピーする

リクエストページで、開いているリクエストについて、次の操作ができます。

  • リクエスト › cURLとしてコピー(⌥⌘C)は、変数とシークレットを解決したcurlコマンドを、ペーストボードに入れます。
  • リクエスト › コードを生成…(⌥⌘G)は、変数を解決したリクエストをコードとして表示します。スクリプトは実行されず、シークレットはそのまま表示されます。言語を選び、コピーまたは保存…を選びます。

コードの生成は、cURL、Swift(URLSession)、JavaScript(fetchとaxios)、TypeScript(fetch)、Python(requestsとhttpx)、Go(net/http)、Kotlin(OkHttp)、Java(HttpClient)、C#(HttpClient)、PHP(cURL)、Rust(reqwest)に対応しています。

言語を追加するには、テンプレートフォルダを開くをクリックして、そこに.templateファイルを置きます。1行目にコメントとして、一覧に表示される名前を書きます。{{! Ruby · Net::HTTP }}のようにです。python-requests.templateなど、組み込みのものと同じファイル名のテンプレートは、それを置き換えます。

コードとcURLコマンドには、リクエストのシークレットが平文で含まれます。ほかの人に読める場所にペーストしないでください。

やり取りをHARとして書き出す

1つのやり取りを、起きたとおりに保存または共有するには、リクエスト › やり取りをHARとして書き出す…を選ぶか、レスポンスボディの上にある保存メニューのやり取りをHARとして書き出す…を選びます。HARファイルには、リクエストとレスポンスが含まれます。

ランナーは、実行のすべてのやり取りを1つのHARファイルに書き出します。コマンドラインではecholot run --reporter harが同じことをします。

レスポンスボディの上の保存メニューには、ボディを保存…、デフォルトのアプリで開くもあり、圧縮されたレスポンスやgRPCのレスポンスではエンコードされたボディを保存…(届いたままのバイト列)もあります。

仕様は、仕様ページから書き出します。

このページの内容