やりたいこと
手っ取り早く似たようなAPIのレスポンス同士を比較したい。
- https://jsonplaceholder.typicode.com/users/1
- https://jsonplaceholder.typicode.com/users/2
私のベストアンサー
curl
コマンドでAPIリクエストjq
コマンドで整形し、ファイル出力- 2つのファイル差分を
vimdiff
コマンドで差分チェック
前提
前提条件としてjq
コマンドを使えるようにしておく必要がある。
Macの人で、Homebrewが利用できれば下記コマンドでインストール可能。
$ brew install jq
1.2つのjsonをファイルとして吐き出す
$ curl -XGET "https://jsonplaceholder.typicode.com/users/1" | jq . --sort-keys > old.json
$ curl -XGET "https://jsonplaceholder.typicode.com/users/2" | jq . --sort-keys > new.json
「.
」がルートの「{}
」を示す。
また、--sort-keys
はキーをソートしてくれる。
そのため「jq . --sort-keys
」とすることで、「ルートを基準にキー名でソート」となる。
>
でold.jsonもしくはnew.jsonファイルに標準出力の内容を上書き保存している。
2.vimdiffコマンドで比較する
$ vimdiff old.json new.json
私が一旦ファイル出力するのは、vimdiff
コマンドを利用するためである。
こちらの記事で解説しているが、標準のdiff
コマンドはあまりスマートに差分を見ることができない。
Macであればvimdiff
は標準搭載されているので、こちらを使うのが個人的にはおすすめ。
まとめ
- 「curl + jq + vimdiff」が私のベストベストアンサー
- 2回目のAPIリクエストは
Ctrl + p
からのCtrl + w
活用すると指の動きをもう少し高速化できる - あくまでも簡易比較なので、もっとしっかり比較したいのであればスクリプトを書く方が楽かも