LoginSignup
6
7

More than 5 years have passed since last update.

curl で作る簡易 API クライアント

Posted at

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"
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7