やりたいこと
手っ取り早く似たような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活用すると指の動きをもう少し高速化できる - あくまでも簡易比較なので、もっとしっかり比較したいのであればスクリプトを書く方が楽かも