BrunoのインストールとPostmanからの移行メモ【Git管理できるAPIクライアント】
はじめに
BrunoはPostmanやInsomniaの代替として注目されているオープンソースのAPIクライアントです。 クラウド同期なし・ローカルファースト・完全オープンソースというシンプルで制御しやすいツールです。
最近のPostmanはアカウント作成が必須になったり、クラウド同期がデフォルトになったりと、個人開発やセキュリティに敏感なプロジェクトでは使いにくい部分が増えています。 Brunoはそういった不満を解消してくれるツールです。
PostmanとBrunoの比較
| 項目 | Postman | Bruno |
|---|---|---|
| ライセンス | フリーミアム(有料プランあり) | オープンソース(MIT) |
| データの保存場所 | クラウド(同期必須) | ローカルファイル |
| アカウント | 必須 | 不要 |
| ファイル形式 | JSON(差分が読みにくい) | .bru(テキスト形式・差分が読みやすい) |
| Git管理 | しにくい | 得意 |
| 動作の重さ | 重め | 軽量・高速 |
| CI/CD連携 | Newman(CLI) | Bruno CLI |
Brunoが向いている人
以下の条件に当てはまる場合はBrunoがおすすめです。
- APIコレクションをGitで管理したい
- クラウドにデータを送りたくない
- 軽量でサクサク動くツールがいい
- オープンソースを使いたい
- チームでAPI仕様を共有したい
インストール
macOS(Homebrew)
brew install bruno
Windows
公式サイトからインストーラーをダウンロードして実行します。
Linux(AppImage)
GitHubリリースページからAppImageをダウンロードします。
chmod +x bruno-*.AppImage
./bruno-*.AppImage
基本的な使い方
コレクションの作成
- Brunoを起動して Create Collection をクリック
- コレクション名と保存先ディレクトリを指定する
- 指定したディレクトリにコレクションがフォルダとして作成される
コレクションはローカルのフォルダとして管理されるため、そのままGitリポジトリに追加できます。
リクエストの作成
- コレクションを選択して New Request をクリック
- HTTPメソッド・URL・ヘッダー・ボディを設定する
- Send で実行する
.bruファイルの構造
Brunoのリクエストは.bruというテキスト形式で保存されます。
差分が読みやすくGitのPRレビューがしやすいのが特徴です。
meta {
name: Get Users
type: http
seq: 1
}
get {
url: {{BASE_URL}}/users
body: none
auth: none
}
headers {
Authorization: Bearer {{TOKEN}}
Content-Type: application/json
}
環境変数の設定
BrunoはPostmanと同様に環境変数(Environment)をサポートしています。
- コレクションの … メニューから Settings → Environments を選択
- Add Environment で環境(dev・staging・prodなど)を作成
- 変数を追加する
BASE_URL: https://api.example.com
TOKEN: your-api-token
リクエスト内では{{BASE_URL}}の形式で参照できます。
シークレットの管理
APIキーなどの機密情報は.envファイルで管理できます。
.envは.gitignoreに追加してGitにコミットしないようにします。
# .env
TOKEN=your-secret-api-token
Postmanからの移行
BrunoはPostmanのコレクションのインポートに対応しています。
- Postmanでコレクションを Export してJSONファイルを保存する
- BrunoでコレクションのImportから Postman Collection を選択する
- エクスポートしたJSONファイルを指定する
Bruno CLIによるCI/CD連携
Brunoには@usebruno/cliというCLIツールがあり、CI/CDパイプラインでのAPIテスト自動化に活用できます。
# インストール
npm install -g @usebruno/cli
# コレクションを実行
bru run --env production
# 特定のリクエストを実行
bru run requests/users/get-users.bru --env production
GitHub Actionsとの組み合わせ例です。
- name: Run Bruno API Tests
run: |
npm install -g @usebruno/cli
bru run --env production
working-directory: ./api-collection
まとめ
Brunoを使うことでAPIコレクションをローカルファイルとして管理でき、Gitでのバージョン管理やチーム共有がスムーズになります。 クラウドへのデータ送信がないため、セキュリティに敏感なプロジェクトにも安心して使えます。 Postmanからの移行もインポート機能で手軽に行えます。