スポンサーリンク
スポンサーリンク
🧭 はじめに
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して触ってみてください。

 
	 
	
 
	 
	 
	
 
	
 
	 
	 
 
	