ノンプロでも知っておくと便利なcURLコマンド

curlコマンド 雑記
この記事は約5分で読めます。

さて、今回は少しGASやpythonと毛色の違うcURLコマンドの紹介です。

curlコマンド?何それ美味しいの?って方もいらっしゃるかと思いますが、terminal(Mac)/ comand prompt(Windows)からAPI等を利用するテストをしたい場合などに非常に便利なコマンドです。

実際Curlでやれることはかなり幅広いのですので、全てはみていけませんがノンプログラマーでも覚えておいてそんがないコマンドを中心に紹介していきます。

Advertisements

そもそもcURLコマンドって何?

curlコマンドとは、サーバから、もしくはサーバへデータ転送を行うコマンドです。

curl is used in command lines or scripts to transfer data. It is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets, settop boxes, media players and is the internet transfer backbone for thousands of software applications affecting billions of humans daily.

https://curl.se/

ちなみにcURLは、client URLの略で、1997年に1st verがリリースされた結構古くからあるコマンドです。

何ができるの?

非常に多様なプロトコルをサポートしています。多すぎて正直全ては把握していませんw 

HTTP/HTTPSのようなweb周りの通信やFTPなどのファイル転送関係、そしてIMAP/POP3などのメール関係のプロトコルまでカバーしています。

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.

https://curl.se/

基本的なcurlコマンド

基本的にcurlコマンドはterminalなどのコマンドラインで利用するものです。あの黒い画面です(別にカラーは変更可能ですがw)

黒い画面が苦手な方もいるかもしれませんが、少し考えてみてください。APIのテストをしたいだけなのに、わざわざ開発環境を準備しなくても住むのは楽ではないですか?ちょっとした動作確認や検証だけする場合に、curlコマンドは環境作成も要らず、すぐさまレスポンスも確認できるので、非常に便利です。

インストールの仕方(Mac)

brew intall curl

バージョン確認

curl --version

http get method

curl [option] url 

HTTP getで取得したデータを書き出す

curl url > output_PATH

or

curl -o output_PATH url

リダイレクトを許容する

curl -L url

HTTP POST

curl -X POST url

headerを指定する方法

curl -X POST url -H 'ヘッダーの中身'

parameterを指定する方法

curl -X POST url -d 'パラメータ'

認証でユーザ名とパスワードを利用する方法

curl -X POST url -u '<user:password>'

認証(方法を指定しない場合)

curl --anyauth --user user_name:password url

OAuth2.0 認可コードを取得する場合

client id is depend on services

curl -X POST endpoint_url \\
-u '<API Key>:<API Secret>' \\
-H 'Content-Type: application/json' \\
-d '{ "parameters": "redirect_uri=url&response_type=code&client_id=<Client ID>" }'

OAuth2.0 トークンを利用した認証

curl -X POST url \\
-u '<API Key>:<API Secret>' \\
-H 'Content-Type: application/json' \\
-d '{ "token": "<Token>" }'

その他コマンドはcurlドキュメントを調べつつ利用してみてください。

curl - Documentation Overview

まとめ

シンプルなHTTP GET/POSTの方法は、APIをテストする際に非常に便利です。また、取得したURLなどをファイル書き出しするオプションもよく利用します。

実際のAPIを利用するケースにおいては、Access Tokenなどを取得した後、endpointからJSONフォーマットのデータを取得することになりますが、その場合に利用すると便利なjqコマンドも別途解説記事を作れればなと思います。

コメント

  1. […] […]