APIとは
調べるとだいたい「アプリケーションなんたらかんたら」の略で~と出てきますが、おそらく私レベルの初学者が知りたいのはそこじゃない。
正式名を知りたくて調べたのではない。
APIを使って何が出来るかイメージが付かない。
両想いってこと
要するにサービスを使いたい側居て、そしてサービスを使って欲しい側が居て成り立っている。
ではどのようにしてそれが成立しているのか?
基本的にAPIは「リクエスト(要求)」と「レスポンス(応答)」で構成されます。
という事はURLが関係してきますね。
どのようなリクエストをすればどのようなレスポンスを返すかはAPIのサービスの提供者側が設計段階で決定します。
なので一概に「APIを利用すればこれが出来る!」というものでもありません。
具体例
例えばよく見るGoogleアカウントでログイン等のソーシャル認証機能を実装したい時は
Google API Console
にアクセスしてAPIを使用する為のURLを登録します。
ここで設定したURLに対しての処理をLaravel側で行うとGoogleが提供しているAPIであるソーシャルログイン機能が実装できるわけです。
あとは例えば楽天レシピAPIと連携する場合もこの様にURLを設定して提供されたIDなどをLaravelに設定する事で楽天レシピの情報がJSON形式で取得できます。JSON形式とは簡単に言えば配列ですね。あとはその配列からレシピ名や画像やリンクを取得してブラウザに表示します。
こんな感じですね。画像もコメントも楽天APIから取得しています。
この様に開発側の「レシピサイト使いたいなぁ」に対して
レシピサイト側は「レシピサイト使って欲しいなぁ」と思っていてまさに相思相愛状態がAPI。
「API叩け・・・?」
それとは別に「APIを叩く」ってのも聞きます。
これも本質は一緒でリクエスト(要求)に対して何かしらのレスポンス(応答)を意図的に返す事。
例えばこの様にルーティングを設定して
Route::post('/signup', 'RegisterController@register')->name('register');
それに対する処理を書く。
public function register(MyVaridation $request)
{
$store = new Store;
$store->fill([
'store_name' => $request->store_name,
'email' => $request->email,
'password' => Hash::make($request['password']),
])->save();
return redirect()->route('mypage', $store->id);
}
これは「/signup」というURLにPOSTする事であらかじめ実装した機能(今回は新規登録)にしたがって処理を行うという事。
これで胸張って「API叩きました!」と言っていいはず。
APIとはこの様に何かしらのリクエストを要求してレスポンスを返す事。
何も外部のサービスを利用する事だけがAPIという訳ではない