too long; don't write :P
なんか色々かけるかと思ったけど、あまり書くことが無いことに気がついた←
のでスニペットをペッてして終わりにする。
最近というか、定期的に curl のオプション集 にイイネが付くから、こういうのも需要あるかな〜と思った次第。
あまり凝った事をせずに、ある程度の部分を決め打ちで作ってしまうようなモノであれば curl だけでも十分実用的な API クライアントができた。Cookie を使っているのは認証にセッションを使っているからだけど、token で認証するのであれば -H
オプションでヘッダーを追加すれば OK。
他にも、リクエストが json
形式をサポートしていなければ --data-urlencode
オプションで個別に渡せば対応できる。
readonly COOKIE_FILE=/tmp/cookie.txt
post() {
local item_id=$1
local value=$2
local params=$(cat <<-EOS
{ "some": "${value}",
"number": 123,
"array": [1,2,3] }
EOS
)
curl -c $COOKIE_FILE -b $COOKIE_FILE \
-X POST \
-H "Content-Type: application/json" \
--data "${params}" \
https://example.com/api/items/${item_id}
}
post 6 "value with space"