それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

curl でAPIアクセスのヘッダ毎回指定を設定ファイルを使って省略する

API にアクセスするときHEADER多すぎ

URLとPOST/GETのデータ以外に指定する項目が多すぎて嫌になる。

curl "https://api.example.com/api/v4/settings" \
     -H "X-Auth-Email: takuya@example.com" \
     -H "X-Auth-Key: gfhfdertgfdsertgf" \
     -H "X-Auth-SID: xxxxxxxxxxxxxxxx" \
     -H "Content-Type: application/json"

おおくが、HTTPに沿った認証してないない。認証API叩いて、セッションキーでCookie発行や、Digestで認証してくれたらいいのにな。。。

curlrc でヘッダを省略する

毎回指定しなきゃいけないヘッダは、省略する。

server.com.curlrc

header ="X-Auth-Email: takuya@example.com" \
header ="X-Auth-Key: gfhfdertgfdsertgf" \
header ="X-Auth-SID: xxxxxxxxxxxxxxxx" \
header ="Content-Type: application/json"

curlrc を指定してリクエストする。

curl -K server.com.curlrc  "https://api.example.com/api/v4/settings" 

かなりシンプルになる。

さらにaliasする

curlrc を指定してリクエストする。

alias curl.server.com='curl -K server.com.curlrc  '

これで、大事なことに集中できる。

curl.server.com "https://api.example.com/api/v4/settings" 
curl.server.com "https://api.example.com/api/v4/update" -X PUT --data '{}'

余計なことを考えずにURIとPOSTデータだけに集中できる。

怠惰ですね。もう

f:id:takuya_1st:20170307205131j:plain:w300

API って使いにくいよね。

個人的には、APIが HTTPの jsonで返す意味があんまりないと思うんだけよね。、ぶっちゃけ、GETクエリで検索条件を絞り込めないほうが不便なんだよね。マルっと一括して取ってくるプログラムと、ちまちま実行するUNIXパイプ志向との発想の違いなんだろうけど。欲しいデータだけをGETクエリで指定しちゃうほうが楽だよね。

api もっとシンプルにしてくれたらいいのに、無駄な労力書けて複雑なAPI作って、使う方も複雑になって大変です。

参考資料

curl でよく使う設定をまとめる ~/.curlrc - それマグで!

画像元

https://clubt.jp/product/445475_42465623.html