curlコマンドを用いてCRUD処理を行う


はじめに

  • 本稿はHTTP(S)を用いてAPIと通信を行うためにcurlを使いたいものの、毎度curlの使い方を忘れてしまう自分が備忘録的にまとめたものです。
  • 間違っている箇所や至らない点についてはコメントの方で指摘していただけると幸いです。

curlって

以下、公式ページ Who makes curl?より日本語訳

curlは、データを転送するためにコマンドラインまたはスクリプトで使用されます。 自動車、テレビ、ルーター、プリンター、オーディオ機器、携帯電話、タブレット、セットトップボックス、メディアプレーヤーなどにも使用されており、毎日何十億もの人間に影響を与える何千ものソフトウェアアプリケーションのインターネット転送バックボーンです。

一言でまとめるとURLを使用してデータ転送するためのコマンドラインツールと言えます。

CRUDって

HTTPメソッドの中でPOST・PUT・GET・DELETEが行う、データ操作の基本となる4つの処理のことを言います。
HTTPメソッドの詳細な内容についてはこちらの記事で丁寧にまとめているので、詳しく知りたい方はそちらを参照するといいと思います。

各コマンド

curlが持つオプションの詳細について知りたい場合はこちら(英語)を参考にするといいです。
日本語ではこちらの記事が分かりやすくまとめられてたので、一度確認してみるといいでしょう。

以下が、今回用いたオプションについての補足CRUDを行うためのコマンドになります。
コマンドの例に際してQiita API v2ドキュメント - Qiita:Developerを用いました。

オプション

$ curl -X GET # -X 以下にHTTPメソッドを指定することで任意のメソッドで通信を行うことができます。
$ curl -X POST -d '{"token":"xxxxxx"}' # -d パラメータの指定を行うことができます。
$ curl -H 'Content-Type:application/json' # -H HTTPヘッダを記述することができます。

Create(POST)

# 記事に対してコメントを投稿する場合の例
$ curl -X POST -H 'Content-Type:application/json' -d '{"body":"コメント"}' https://xxxx/api/v2/items/:item_id/comments

Read(GET)

# コメントを取得する場合の例
$ curl -X GET https://xxxx/api/v2/comments/:comment_id

Update(PUT)

# ユーザーをフォローすr場合の例
$ curl -X PUT https://xxxx/api/v2/users/:user_id/following

Delete(DELETE)

# コメントを削除する場合の例
$ curl -X DELETE http://xxxx/api/v2/comments/:comment_id

参考

HTTPメソッド(CRUD)についてまとめた
curl.haxx
逆引きcurlコマンドのオプション一覧
Qiita API v2ドキュメント - Qiita:Developer