なにをしたい?
- REST APIの開発中、テストリクエストを投げたいときに毎回コマンド履歴からcurlとかhttpieのリクエストを探して再実行しているけれど、リクエストの組み立てや履歴からの実行がツールになっていると嬉しいな
- Postman とかあるけど、ターミナルを出たくない
- UIはこれを参考にしよう
構想
- https://github.com/rivo/tview を使ってみたい
- できること
- 履歴(最大N件をリストで)
- リクエストとそのときのレスポンスが見れるとか
- どこかに履歴を保存しておいて、起動時にロードするみたいな
- フォルダでグループ分けできる
- ワークスペース
- リクエスト
- bodyの入力
- レスポンス
- ヘッダー
- リクエスト
- 履歴(最大N件をリストで)
できたもの
GitHub
GitHub - ikorihn/kuroneko: A lightweight, Terminal-based HTTP API client application.
A lightweight, Terminal-based HTTP API client application. - ikorihn/kuroneko
実装メモ
tviewの使い方
アプリケーションの初期化、実行
Applicationを作って、Viewを作ってapp.SetRootを呼び、Runを実行することでTUIが起動する
UIの設計方針
Viewの操作をすることが多いので、グローバル変数かstructのフィールドに詰め込むのがいいと思う
キーマップを設定する
このviewにいるときにこのキーをおしたらこういう動きをする っていうのを設定する
curlコマンドを出力する
http.Requestをcurlコマンドとして出力できたら最高だと思ったので https://github.com/moul/http2curl で変換、出力するようにした
clipboard にコピーする
レスポンスをクリップボードにコピーしたかったので、 atotto/clipboard を使った。
次のようにして y
でクリップボードに書き込むようにした。
お気に入りを保存する
保存先は XDG_BASE_DIRECTORY の XDG_DATA_HOME にする https://github.com/adrg/xdg を使う
保存形式はtoml でいいかな