そもそもAPIとは
APIとは「Application Programming Interface」の略語
・APIはソフトウェアの一部を公開して、他のソフトウェアと機能を共有できるようにしたものです。
・つまりは、異なるソフトウェア同士連携ができる便利なものと覚えておきましょう。
- APIを賃貸不動産で例えてみる
お客様が店舗に入り、仲介会社に希望条件の賃貸物件を探してもらいます。仲介会社はその賃貸物件を管理会社に伝えます。
管理会社は契約書を作ります。仲介会社のおかげでお客様は希望物件に住むことができる。
この例において、お客様に相当するのがAPIの利用者、仲介会社がAPI、そして管理会社(厳密にいうとオーナー)に相当するのがAPI提供元のサーバーです。
API(仲介会社)に希望条件の賃貸物件を探してもらう(リクエスト)ことで、
サーバーから出されたデータや情報が、API(仲介会社)を通じて利用者(お客様)に届けられます(レスポンス)。
詳しい説明はこちらでのURL
https://www.sbbit.jp/article/cont1/62752
https://blog.hubspot.jp/api
APIの中身は覗けるよ
API連携の開発をする際にレスポンスデータがどう返ってくるか実際に覗く便利ツールがあるため記録。
実際にどんなデータが返ってくるかわかればもう怖くなんかない!
curl
https://qiita.com/akane_kato/items/34b408336f4ec372b139
APIを連携してみよう
- リクエストデータを送信する
まず自分から相手にデータを送信します。
押さえておくべきこと
-
Webサービスに接続するための情報(サービス登録時に手に入る)
- API エンドポイント(サービスに接続するためのURL)
- API キー(接続に必要なパスワード)
-
Webサービスに送信する情報(APIの仕様書で確認できる)
- メソッド(主にPOSTかGET)
- クエリパラメータ(使用するAPI・サービスの種類など詳細を指定)
- ヘッダ(データの種類や、API キーなどの認証情報を入力 ※POSTメソッドで指定する)
- ボディ(APIと送受信したい情報を入力。※POSTメソッドで指定する)
-
架空で各地の天気を取得できるAPIを使用するとして東京の天気の情報をとってくるとしたら下記のように情報を飛ばします。
// APIに接続するための情報 $header = {'content-Type: application/json', 'key: abcdefghi12345678'} $url = "https:/world_weather.com/api"; $post = {date='today', area=Tokyo} // APIの実行 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
2. レスポンスデータを送信する
相手から返答(レスポンス)が返ってくる
-
届いたレスポンスデータから東京は雨だということがわかりますね。
// レスポンスデータの取得 {'status: sucess', 'result: rain'}
API連携にあたり、ざっくりAPIの大まかな流れとしては
・データを成形
・リクエストデータ投げる
・レスポンスデータが返ってくる
・レスポンスデータを運用しているサービスの型にデータを成形する
だけなのです。
つまり、普段、開発でしているようなデータ成形と仕様が読めさえすれば実は何も怖くないのです。