ApiMug — ターミナルベースのOpenAPI/Swaggerクライアント
概要
ApiMugは、OpenAPI/Swagger仕様書を端末上で快適に閲覧・操作できることを目標にしたCLIツールです。Bubbletea(Go言語のTUIフレームワーク)によるインタラクティブな操作感で、エンドポイントの一覧表示、パラメータ編集、認証情報の設定、およびその場でのHTTPリクエスト送信が可能です。複数の認証方式(Bearerトークン、APIキー、Basic認証、OAuth2)をサポートし、開発やデバッグのワークフローをターミナル内で完結させます。軽量なGo製ツールとして配布・ビルド設定(goreleaser等)も整備されています。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 4
- ファイル数: 12
- メインの言語: Go
主な特徴
- OpenAPI 3.0 / Swagger 2.0 の仕様をターミナル上でブラウズ・探索可能
- BubbleteaによるインタラクティブなTUIで操作性を重視
- 端末内から直接HTTPリクエストを作成・送信してレスポンスを確認
- 複数の認証方式(Bearer、API Key、Basic、OAuth2)に対応
技術的なポイント
ApiMugはGo言語で実装され、TUIはBubbletea(およびスタイリングにlipgloss等)を用いて構築されている想定です。設計上はOpenAPI/Swagger仕様をパースして、定義されているパスや操作(operations)を内部データ構造に変換し、TUI上で階層的に表示する流れを取ります。ユーザーは各エンドポイントを選択してパラメータ(path/query/header/body)を編集し、認証設定を適用したうえでリクエストを送信できます。送信部分は標準のnet/httpや拡張HTTPクライアントを利用し、レスポンスのステータス、ヘッダ、ボディ(JSON等)を整形して表示することで、対話的なデバッグが可能です。
認証面ではBearerトークンやAPIキー、Basic認証に加えOAuth2をサポートしており、仕様で定義されたセキュリティスキームを読み取って必要な認証情報をUIから設定できる仕組みになっています。またREADMEにある「Built-in Swagger UI」関連の記述から、ローカルでSwagger UIを立ててブラウザで参照する補助機能や、仕様の可視化エクスペリエンスを補完する機能も含まれている可能性があります。リリース周りは.goreleaser.yamlが用意されており、クロスプラットフォームのビルドや配布を想定したCI/CD対応が容易です。比較的小規模なコードベースであり、Goモジュール管理やライセンス(LICENSEファイル)も明示されているため、ローカルでビルドしてカスタマイズしやすい構成です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .goreleaser.yaml: file
- LICENSE: file
- README.md: file
- RELEASE.md: file
…他 7 ファイル
(ファイル数合計12。Goソース、モジュール定義、ビルド設定、ドキュメントが含まれています)
まとめ
ターミナル上で手早くOpenAPI仕様のテストや探索を行いたい開発者に有益なTUI型クライアント。
リポジトリ情報:
- 名前: ApiMug
- 説明: Terminal-based API client for exploring and testing OpenAPI/Swagger specifications with an interactive TUI
- スター数: 1
- 言語: Go
- URL: https://github.com/doganarif/ApiMug
- オーナー: doganarif
- アバター: https://avatars.githubusercontent.com/u/39677866?v=4
READMEの抜粋:
ApiMug
A terminal-based API client for OpenAPI/Swagger specifications with an interactive TUI interface.
Features
- Browse and explore OpenAPI 3.0 and Swagger 2.0 specifications
- Interactive TUI powered by Bubbletea
- Send HTTP requests directly from the terminal
- Multiple authentication methods (Bearer, API Key, Basic, OAuth2)
- Built-in Swagger UI se…