スポンサーリンク
スポンサーリンク
🧭 はじめに
API開発に欠かせないPostman。しかし最近、「重い」「プロジェクト単位の管理が難しい」「差分レビューができない」と感じていませんか?
そんな不満に応えて登場したのが、軽量かつGitフレンドリーなオープンソースAPIクライアント「Bruno」です。
本記事では、
- Brunoとは何か?なぜバズっているのか?
- 私が作成したBruno風クローンアプリ「papi_client」について
- papi_clientの技術構成・実装解説・拡張性
を解説します。
わざわざ今あるサービスをクローンしたのは、「自分の使うものは自分で作ってみたい」という単純な理由です。
Pythonの学習用などに是非ご活用ください。
🚀 Brunoとは何か?
✅ 特徴まとめ
特徴 | 解説 |
---|---|
軽量高速 | Electron製ではあるがメモリ消費が非常に少ない |
Git連携最適 | APIリクエストを .bru テキストで管理、差分比較が容易 |
ローカル完結 | ネット不要で動作、オフラインでのAPIデバッグが可能 |
OSS & 無料 | GitHub上でオープンソースとして活発に開発中 |
🌍 バズ理由
- Postmanに代わる「GitにやさしいAPIツール」として急浮上
- Reddit / HackerNews / Qiitaでの紹介記事が多数
- GitHubスター数:27,000以上(2025年4月時点)
- Qiita記事がはてブ1位になるなど、日本でも注目増
📦 “.bru” ファイルの例
GET https://api.example.com/users
Authorization: Bearer {{TOKEN}}
これをGitで管理できる → 差分レビューOK、PR管理OK。
🛠️ 自作しました:「papi_client」
papi_client は、Brunoの思想を取り入れたAPIクライアントです。
- GUIでAPI構成を定義
.papi
ファイルでリクエスト・ヘッダー・ボディ・環境変数を記述- JSONレスポンス整形+保存
- 認証トークンUI、プロジェクト一覧表示あり
🔗 GitHub: https://github.com/Yuusuke9228/papi_client
📦 技術構成
技術 | 用途 |
Python + PyQt5 | GUI構築(軽量スタンドアロン) |
JSON/YAML | 設定ファイルフォーマット |
requests | APIリクエスト送信モジュール |
sqlite3(予定) | 保存機能に今後対応 |
🔧 ファイル構成と起動方法
papi_client/
├─ gui/
│ └─ main_window.py
├─ core/
│ ├─ parser.py
│ └─ sender.py
├─ projects/
│ └─ sample.papi
├─ assets/
│ └─ logo.svg
🖥 起動コマンド
python gui/main_window.py
起動後、GUI上で.papi
ファイルを読み込み、API定義を選択して「送信」するだけ。
📄 .papi
ファイル仕様
{
"name": "Get Users",
"method": "GET",
"url": "https://jsonplaceholder.typicode.com/users",
"headers": {
"Authorization": "Bearer {{API_KEY}}"
},
"env": {
"API_KEY": "your-token-here"
}
}
🧠 拡張例
機能 | 解説 |
環境変数ファイル .env 読み込み | dotenv形式を読み込んでトークン管理 |
リクエスト履歴表示 | 過去のAPI呼び出しを一覧化&再送信 |
テストスクリプト | assert status == 200 的な記述サポート予定 |
ファイル添付 | Multipart形式に対応予定 |
🔒 安全性とオフライン性
- 完全ローカルアプリ
- 通信は選択されたAPI先のみに行う
.papi
ファイルのみで構成可能(Git管理向き)
🌟 Brunoとpapi_clientの違い
項目 | Bruno | papi_client |
GUI | Electron + React | PyQt5(軽量) |
記述形式 | .bru | .papi (JSON) |
プラットフォーム | Win/Mac/Linux | Win/Mac/Linux(Python環境) |
Git管理 | ◎ | ◎ |
OSS公開 | ✅ | ✅(MITライセンス) |
🧪 使用例:ChatGPT APIをテスト
{
"name": "ChatGPT Test",
"method": "POST",
"url": "https://api.openai.com/v1/chat/completions",
"headers": {
"Authorization": "Bearer {{OPENAI_KEY}}",
"Content-Type": "application/json"
},
"body": {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "こんにちは"}]
},
"env": {
"OPENAI_KEY": "sk-***"
}
}
これをpapi_client
で読み込んで送信 → JSON整形された応答を表示&保存可能。
📢 まとめ:これからは「GitでAPI管理する時代」
Postmanは便利ですが、GUI重視ゆえに変更履歴やレビューが難しい。その点、Brunoやpapi_clientのように、
- 軽量で高速
- テキストベースで構成
- Gitと相性抜群
なツールは、開発現場に新たな選択肢を提供してくれます。
papi_clientも今後以下のような機能追加を予定中:
- 認証テンプレート(OAuth 2.0)
- 自動スキーマ補完
- REST/GraphQL両対応
気になった方はぜひGitHubからcloneして触ってみてください。