APIという言葉。聞いたことはあるけど、ぶっちゃけ意味はよくわかっていないというあなた。
今回は「API」というものが何かを簡単に説明しようと思います。
少し難しそうに聞こえるかもしれませんが、実はとても身近で便利なものです。一緒に楽しく学んでいきましょう!
APIって何?
よーわからんっす
APIとは何か?
APIは「Application Programming Interface」の略で、「アプリケーション・プログラミング・インターフェイス」の略です。
これを簡単に言うと、異なるプログラム間でデータのやりとりができる窓口みたいなもんです。
例え話で説明してみます。
あるパン工場があり、そのパン工場は直営のパン屋Aを営んでいて焼きたての美味しいパンを売っています。
ある日、一人の男が「御社の美味しいパンでパン屋Bを開かせてくれ」とその工場を訪れました。
この男は工場から直接美味しいパンを仕入れて販売したいと考えていました。
優しいパン工場のボスは「いいよ」とOKしました。
ここで、工場とパン屋Bの男との間で特別な契約(APIのようなもの)が結ばれました。
この契約により、工場はパン屋Bが焼きたてパンを受け取れる窓口をある場所に設置し、
パン屋Bの男は、必要な時に工場からパンを注文したり取りに行くことで、それを店で販売できるようになりました。
この例でいう「特別な契約」によってできた窓口がAPIの役割を果たします。
APIが何なのか、と聞かれたらこの特別な契約あるいはそれによって出来た窓口をAPIと呼べるでしょう。
もう少し実際に近い例
もう少し実際に近い例えもしてみましょう。
例えば、あなたが犬の種類別の育て方を紹介するアプリケーションを作りたいと思ったとき、
犬の種類を自分でゼロから調査して特徴を整理したり画像を集めたりデータを用意するのは大変ですよね。
そんなとき犬の種類に関する情報を既にまとめてくれて提供してくれるシステムやサービスがあれば、
そこから犬種の名前や画像データを利用すると、開発時間の節約にもなりますし、
もっとアプリケーションのコアな部分の開発に集中できるため、利用したいと思うはずです。
実際に、犬種ごとの画像や名前を提供してくれるThe Dog APIというAPIが存在していて、
これを使うことで簡単に必要な情報を取得することができます。これがAPIの例です。
APIを使うメリット・デメリット
メリット
APIを利用する際のメリットはいくつかあります。
ひとつ「開発を効率化できる」ことです。既に用意されたAPIを利用して開発を行うことで全て一から開発する必要がなくなり、時間の節約になります。そのほかにもAPIは様々な活用方法があるので、多様なサービスを提供できることなどもあります。
もうひとつは「ユーザビリティの向上」ことです。例えばAPI連携によってTwitterやGoogleなど利用者の多いサービスの情報を活用できれば、新たにユーザーが自分の情報を登録する必要もなくなりユーザビリティが向上します。
規模が大きいサービスやシステムのAPI連携になってくると、セキュリティ面のメリットや情報連携にも大きなメリットが出てきます。
デメリット
APIの利用にもデメリットがあります。
ひとつは「依存問題」です。APIの連携先に仕様変更があった場合は、変更に合わせてアプリやシステムの修正が必要になることがあります。また、APIサービス自体にトラブルがあった場合、復旧を待つしかありません。
もうひとつは「APIの制限」です。APIには使える回数や機能に制限があることも多く、計画通りに進めるのが難しくなることもあります。
実際に存在する面白いAPI
個人開発でも利用できそうな面白いAPIを以下に並べてみました。
オススメはPoke APIです。会員登録もなく無料で非常に使いやすく、皆さんも馴染みがあるポケモンを使って色々できるので楽しくAPIを学べると思います。
- PokeAPI:ポケモンのデータを取得できるAPIです。ポケモンの名前や特徴を調べることができます。
- Open-Meteo:世界中の天気情報を提供するAPIです。指定した場所の天気を知ることができます。
- REST Countries:世界中の国に関する情報を取得できるAPIです。国名、人口、言語などを調べることができます。
- The Dog API:犬の種類に関する情報を提供するAPIです。犬の画像や特徴を調べることができます。
- JokeAPI:さまざまな種類のジョークを提供するAPIです。勉強の合間にリラックスできるかもしれません。
- Pixel Encounter:ランダムなピクセルでできたモンスターを画像で生成してくれるAPIです。
- Foreign exchange rates API:為替レートを返してくれるAPIです。
- Yes No:YesかNoで答えてくれるAPIです。APIのサイトでも体験?できます(https://yesno.wtf/)
APIを使って楽しくプログラミングをしよう
APIを使うことで、プログラミングがもっと楽しく、実用的になります。
例えば、天気のAPIを使って、毎日の天気を教えてくれるアプリを作ることもできますし、
ポケモンのAPIでポケモン図鑑アプリを作ることもできます。
いろいろなAPIを使って、自分だけのオリジナルアプリを作ってみてください!
紹介した中で興味を持ったAPIがあれば、ぜひ挑戦してみてください。
なんとなくわかったような気がしないでもない!