CONTENT
こんにちは、大阪エンジニアのYです。
最近、業務でAPIの開発や相手システムのAPIを呼び出すような対応が増えてきており、その際に頻繁に使用するようになった「curl」コマンドについて今回は紹介しようと思います。
【curl】(読み方:カール)
様々な通信プロトコルでデータの送受信を行うことができるコマンド。
様々なオプションを指定する事で、データ取得時の条件や、取得する情報を変える事ができる。
<オープンソースソフトウェア>
私の場合、WEB-APIを取り扱うことが多いので、httpsの通信プロトコルを使用して相手先APIとの疎通確認をする際に使用しています。
■curlコマンドの基本形
# curl [オプション] [接続先のURL]
基本はこれだけです。
必要なオプションを指定してうえで、接続先のURLを設定して実行すると目的のAPIを実行することができます。
■(私が)よく使うオプション
[-d パラメータ]
POSTリクエストとしてフォームを送信した場合に設定。
JSON形式のデータを作成しておき、その内容をリクエストパラメータとして設定することができます。
[-o ファイル名]
取得したデータを指定したファイルに出力することができます。
相手APIからのレスポンス内容を保存しておきたい場合に使用しています。
[-H ヘッダ情報]
HEADER HTTPヘッダにHEADERを追加もしくは変更する場合に指定します。
APIによっては指定されたヘッダ情報を設定する必要があるものも多いのでそういった場合に設定します。
他にもたくさんのオプションがありますが一部を詳細させて貰いました。
もっと詳しく知りたい方はリファレンスを読んで貰えればと思います。
コマンドの紹介だけだと味気ないので実行例を1つ紹介しておきたいと思います。
呼び出すAPIはお天気API「Open-Meteo」
誰でも無料で使用できる天気予報APIです。
最低限設定する情報は以下の内容
・URL:https://api.open-meteo.com/v1/forecast
・パラメータ①:緯度[latitude]
・パラメータ②:経度[longitude]
・パラメータ③:取得情報指定(日時の天気)[daily=weathercode]
・パラメータ④:タイムゾーン[timezone]
今回は東京の天気を取得することを想定して
「緯度:35.6785」「経度:139.6823」「タイムゾーン:Asia%2FTokyo」を指定していきます。
curlコマンドのオプションは指定無しで実行する想定で早速コマンドを実行してみます。
少し分かりにくいかもしれませんが日ごとの天気が「weathercode」として配列で返却されました。
コードに対するお天気の内容は以下サイトに記載があります。
https://www.nodc.noaa.gov/archive/arc0021/0002199/1.1/data/0-data/HTML/WMO-CODE/WMO4677.HTM
※すべて英語なので分かりにくいですが・・・。
どうですか?
「APIを呼び出す」となるとハードルが高く感じますが、簡単な内容であればこの程度の手順で実行することができます。
Windowsのコマンドプロンプトからも実行可能なので興味のある方は是非この機会に触れてみて下さい!