
resterm v1.5.6
HTTP、GraphQL、gRPC対応のターミナルAPIクライアント。diffやバージョン管理ができるプレーンな.httpファイルで、ワークフロー、モック、プロファイリング、トレーシング、OpenAPIインポート、SSHトンネル、Kubernetesポートフォワード、WebSocket、SSE、CLIランナーを備えています。
Resterm
ターミナル向けのAPI-as-codeワークベンチ。
resterm.app · docs
Restermは.http/.restファイルをソースコードとして扱うAPIクライアントです。ほぼすべての機能が.httpファイル内に存在するため、Gitやその他のバージョン管理で簡単にレビューできます。TUIから直接リクエストの送信、APIフローのテスト、HTTPトラフィックの記録、ローカルモックサーバーの実行ができ、同じ定義をスクリプトやCIでresterm runコマンドを使って実行することもできます。
Restermを選ぶ理由
- 完全なAPIフローをテスト。 ログインし、トークンを取得し、リソースを作成し、結果を確認します。アサーション、ループ、条件、リトライ、スクリプトをリクエストファイルに直接追加できます。
- 実際のトラフィックをローカルモックに変換。 HTTPリクエストとレスポンスを記録し、実行可能なリクエストまたはモック定義として保存します。モックはそれを使用するリクエストの隣に置いておけます。
- 何が変わったかを発見。 環境間でレスポンスを比較し、以前の結果と差分を取り、リクエストのタイミングを検査し、繰り返し実行をプロファイリングします。
- ローカルでもCIでも同じチェックを実行。 開発中はターミナルUIを使用し、その後
resterm runでそれらのファイルを実行します。JSONまたはJUnitレポートをエクスポートできます。 - プロトコルをまたいで作業。 HTTP、GraphQL、gRPCリクエストを送信し、WebSocketおよびSSEストリームを扱えます。
組み込みのSSHトンネルとKubernetesポートフォワードにより、踏み台サーバーの背後やクラスタ内のAPIに到達できます。
アカウント不要、テレメトリなし、AI機能なし。
スクリーンショット
トレースとタイムライン
クリックしてUIの詳細を表示
ワークフロー
プロファイラ
Explain
RestermScript
インストール
macOSおよびLinux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
Go 1.25以降の場合:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
macOS、Linux、Windows用のビルド済みバイナリはリリースページにあります。Linuxバイナリにはglibc 2.32以降が必要です。
更新するには、Homebrewでインストールした場合はbrew upgrade restermを実行します。それ以外の場合はresterm --updateを実行します。詳細はインストールガイドをご覧ください。
クイックスタート
mkdir my-api && cd my-api
resterm init
resterm
resterm initは、いくつかのサンプルリクエストとそれに応答するローカルモックを含むrequests.httpファイルを作成するので、実際のAPIなしで試すことができます。g Shift+Mを押してモックサーバーを起動し、カーソルをリクエストに移動してCtrl+Enterを押して送信します。いつでも?を押すとヘルプが表示されます。
initも必要ありません。restermを実行し、URLを入力するかcurlコマンドを貼り付けて、Ctrl+Enterを押すだけです。
同じファイルはUIなしでも実行できます。一方のターミナルでモックを起動し、もう一方でリクエストを実行します:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
リクエストファイル
Restermは標準の.http形式を読み込み、設定と自動化のために# @ディレクティブを追加します:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.mode == "development"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
最初のリクエストの前の@settingはファイル全体に適用されます。###は新しいリクエストを開始します。リクエストの上のディレクティブは、それを繰り返したり、スキップしたり、レスポンスをチェックしたりできます。
さらに多くの例が_examples/にあり、すべてのディレクティブはリクエストファイルリファレンスに記載されています。
ドキュメント
完全なドキュメントはresterm.app/docsにあります。始めるのに良い場所は、ワークフロー、モックサーバー、記録、CLI、RestermScriptです。
TUI内では、:help <topic>で組み込みマニュアルが開き、:docs <topic>でウェブサイト上の同じページが開きます。
独自のGoコードからリクエストファイルを実行するには、headlessパッケージを参照してください。
スポンサー
Restermは無料でオープンソースであり、これからもそうあり続けます。私の仕事を気に入っていただけたら、GitHubでスポンサーになれます。