parallelとcurlでjsonをPOSTする
APIを複数処理する必要が出てきて、parallelやxargsを使う方法が思いついた.
ただcurlでjsonをpostする場合、-d
オプションをつけてbodyを指定する。
そのbody中のjsonを表現する'
,"
の扱いが分からなかったため備忘録として残す.
$ cat id_list 123 456 789
cat id_list | parallel -j 1 curl -X POST -H \'Content-Type: application/json\' -H \'Authorization: Bearer $TOKEN\' -d \'\{\"id\":\"{}\",\"force\":true\}\' \"https://myurl\"
デバッグの仕方
parallelに-v
オプションをつけると、parallelがどう解釈したか表示されるため、このオプションを使う。
parallelの-v
オプションの他に、curlに-v
オプションをつけても良い