Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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"
givery
Giveryは社会を豊かにする人々のための成長エコシステムを創造する「成長」支援企業です。ITとリアルの両軸で事業を展開し、お客様・ユーザーの皆様・社員・社会の成長を全力で応援します。
https://givery.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away