環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

【Laravel】はじめてのAPI構築(第1回) 座学編

APIって何?いつ使うの?

「API」とは、「Application Programming Interface」の略です。

言葉の意味としては、アプリケーション、プログラム、サービスをつなぐインタフェースということになりますが、触れたことがない方にとってはイメージしづらいと思うので、少し具体的に話します。

あなたの会社で、ショッピングのWEBサービスを持っているとします。当然存在するのが「ログイン機能」です。さて別のアプリとして電子BOOKのアプリを作りたいとします。(Amazon、Rakutenなどがイメージしやすいでしょう。) 連携サービスなので、同じ会員情報を扱いたいとします。ここで、それぞれのサービスが独自で「ログイン機能」を実装することももちろん可能です。ですが、効率的ではありません。そもそも開発コストの面でもそうですが、ログイン機能になにか修正が入るたびに2個のアプリを修正しなければなりません。

更に言うと、サービス数が2個だから良いものの10、20と増えた場合はどうでしょう。想像するのも恐怖です。いつかとんでもないトラブルが発生することでしょう。

ここで登場するのがAPI。ログインAPIとして独立した1個のアプリとして作成すると、各サービスはそれを利用するだけでよくなるわけです。

もっと具体的には?

具体的には、ある情報を送ると情報を返してくれるというものです。

ログイン機能を例にすると、「ID」と「パスワード」という情報を送信すると、「ログイン成功」「ログイン失敗」を返してくれる。商品検索を例にすると、「検索ワード」「値段の上限」を送信すると、それに対応した「商品のリスト」が返ってくる。

そのようなデータのやりとりをイメージできましたでしょうか。

どんな種類があるの?

イメージしやすい例として、自サービスにおけるログイン機能をあげましたが、もうお気づきの通り、機能として独立させたいのであれば何でもAPIになりえます。用途は無限大です。

その中でも敢えて大きな括りで分けるとするならば、主要機能をAPI化するものと、情報収集(提供)をAPI化するものにわかれると考えて良いでしょう。(※筆者の勝手なイメージです)

機能をAPI化するというのは、先程例にあげた「ログイン機能」であったり、「ユーザー管理機能(登録/編集など)」、「お買い物機能」、「送金機能」なサービスの機能の一部分を担うものです。このタイプはAPIのレスポンスとして、処理が成功したかどうかがレスポンスに含まれることになります。このレスポンス次第で次の画面に遷移させたり、エラーが画面を表示したりするわけです。

次に情報収集(提供)をAPI化するというのは、検索機能をAPI化するものです。商品を検索する、旅館を検索する、航空便の検索をする、レシピを検索する、動画を検索するなどの事です。このタイプのAPIのレスポンスには、情報のリストが含まれることになります。検索条件に合う「商品のリスト」「レシピのリスト」が返却されるわけです。(もちろん、検索結果ゼロということもあるでしょう)このレスポンスを使って、検索結果画面を表示するということになります。

APIって作るの?外部サービスじゃないの?

世の中でよく使用されているメジャーなサービスの多くはAPIを提供していることが多いです。そのようなAPIを利用して自前のサービスに利用することもできます。(※利用規約はしっかり読む必要があります

またもちろんAPIを作成することも難しいことではありません。APIにまだ触れたことがない方は、自分には関係ないものと思っているかもしれませんが、ある程度のWEBアプリやスマホアプリに携わる事があれば、ほぼ間違いなく利用します。以下のような例をあげてみました。思ったより身近ですね。

【例1】WEBサイトで画面遷移なしで情報を更新しようとする場合

画面遷移する場合は検索結果の2ページ目、3ページ目と移動すればアプリのみの処理でデータ更新できます。

一方で、みなさんもよく見るであろう「あと10件みる」ボタンのような、画面遷移をせずに画面を更新する場合には、APIを利用して情報を取得することになります。

【例2】ネイティブアプリ(iOS/android)で通信が必要な処理をする場合

ネイティブアプリでは、端末の中にログイン用のDBがあるわけでもなく、検索結果の商品情報が保存されてるわけでもありません。ログインする場合には別途APIを用意してログイン処理を行いますし、検索結果を表示したければ商品検索のAPIを用意することになります。

例えば、「電卓」アプリのようなインストール時にインストールされた材料のみで動作するアプリは、APIを利用しないこともあるでしょうが、少しでも通信があるアプリであれば、APIが必須となります。

まとめ(座学編)

そんなこんなで、APIがどんなものかはイメージがつきましたか?

次回からAPI構築の実践をしていきましょう。