いまさら聞けない!APIとは何か?〜基礎の基礎を学ぼう〜

こんにちは!佐野です。初心者にとって、APIってものすごく理解しづらいですよね。

APIって何?
APIが公開されました!…ってどういうこと?
調べて説明を読んでも全然わからない…

など、まったく理解ができない用語No1ではないでしょうか。

しかし、APIはプログラミングを使う中で必要になりますし理解することで開発の幅が広がります。そこで今回は、APIを初心者の方が理解できるようにどこよりもわかりやすく徹底的に解説します!

WebアプリをAPIで開発するために必要な知識


【未経験必見】アプリ開発を革命的アイデアで実際に開発する方法とは?
更新日 : 2019年6月26日

【簡単入門】WEB APIの使い方が学べるコンテンツ厳選3選!
更新日 : 2019年6月3日

APIとは


画像:shutterstock

APIの定義

まずはWikipediaの説明をみてみましょう。

アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。

引用元:Wkipedia

これではよくわからないですね。ひとことでいうと、APIとはソフトウェアの機能を共有することです。

APIとはソフトウェアの機能を共有すること

APIは自己のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたものです。

ソフトウェアの一部をWEB上に公開することによって、誰でも外部から利用することができるようになります。それによって、自分のソフトウェアに他のソフトウェアの機能を埋め込むことができるようになるので、アプリケーション同士で連携することが可能になるのです。

「API」=「機能+仕様書」

ただ、外部からソフトウェアの機能を利用するといっても、内部のコードまでは公開していません。ですので、外部からは機能の使い方や仕様がわからないため、「こうすると機能を利用できます」「この機能はこのように使ってください」のような使い方を説明する必要があります。

また、セキュリティの観点から、このような使い方はできません」「このような使い方はしてはいけませんなどのルールも定められています。APIは、このような仕様やルールと一緒にまとめてWEB上に公開しているものが一般的です。よって、APIとは機能+仕様書と言い換えることもできます。

なお、APIはWEB上で通信して利用することが普通なのでWEBAPIと呼ばれることも多く、APIと書いている場合は通常WEBAPIを指します。

インターフェースとは何か?

APIは日本語でいうとアプリケーションプログラミングインターフェースです。アプリケーションやプログラミングはよく耳にする用語ですが、インターフェースは聞きなれない用語ですね。

IT用語としてのインターフェースは、人間とコンピューターが接する部分のことを指します。人間とコンピューターの境界にたって、情報のやりとりをしてくれる役割をするものです。

具体的にいうと、パソコンのキーボードやマウス、テレビのリモコンや駅の券売機などがインターフェースにあたります。これらはすべて、人間の操作に従ってコンピューターに情報を伝えて会話をしてくれる翻訳機のような役割をしていますね。

同じように、APIもプログラマーの代わりにアプリケーションに情報や指示を出してプログラミングしてくれるような役割をしているので、アプリケーションプログラミングインターフェースと呼ばれているのです。

APIの本質とは?


画像:shutterstock
ここまでで、APIに関してご理解いただけたのではないでしょうか。そもそもAPIはなぜ作られるのか、なぜAPIを使うのかといったことを知るとより深く理解できるので、実戦でもしっかり活用できるようになります!APIの本質に迫っていきましょう!

なぜAPIは作られるのか?

より多くの新しいサービスを開発するため

自社サービスの機能をAPIとして公開することで、同じ特徴をもったサービスが開発しやすくなります。それによって、ある機能に特化させたり、さらに使いやすく一部の機能だけ改良することができます。その結果、より多くのサービスが生まれ、世の中が便利になっていきます。

データの二次利用

APIでは他社のデータを使うこともできます。同じ情報を様々な分野で活用してもらうことで、情報を分析することが容易になり、各分野に特化した分析をおこなうことができます。そこから顧客の傾向や特徴を発見することで、イノベーションが生まれ、新しいビジネスが生まれるのです。

なぜAPIを使うのか?

開発を効率化

作りたい機能がすでにAPIで公開されているなら、同じプログラムを1から作る必要がありません。それによって、開発時間を大幅に短縮できます。

さらに無料で利用できるため、開発コストも大幅に削減でき、かつ効率的にアプリケーションを制作することができるのです。他にも、ツールやサービスを使うことでもっとアプリ開発を効率化することができますよ。

WEBアプリ開発を効率化できるサービス・ツール10選【Ruby/Python/Java/PHP】
更新日 : 2018年11月29日

サービスの利用者にとって便利

他社のユーザー情報を使って、自社のサービスにログインできる機能を作ることができます。そのため、あらためて会員登録をしてもらう必要がありません。メールアドレスやパスワードの入力も必要ないため、ユーザーにとって面倒な手続きや手間を省くことができます。

APIは、アプリケーションやサービスを利用するユーザーにとっても便利な仕組みといえます。

APIを料理で例えるなら…

shutterstock_416591686

画像:shutterstock

APIを料理で例えると、料理器具を他社から無料で借りて料理ができることと同じです。1から自社で器具を用意しなくて済むので、手間を省いて効率よく料理をすることができます。必要な器具を借りるだけで料理に制約はかかりませんので、好きな材料を使えば自由に料理をつくることができます。

APIが使われている実例

shutterstock_385720936

画像:shutterstock
現在使われているAPIは数多くの種類があるので、イメージしやすいように実際に使われているAPIの実例をあげます。Facebook APIを使っている大人気の「インスタグラム」をご紹介します。インスタグラムはFacebook APIを使っているので、Facebookアカウントで登録ができてすぐに利用をはじめることができます。

このような画面を一度は見たことがあるでしょう。

Screenshot 2016-07-01 05.06.26

Facebook APIの承認画面

この画面は、Facebookの情報を使うので、「Facebookへのアクセスを許可しますか?」とユーザーに許可を求めています。勝手にユーザーの情報を利用することはできませんので、必ずユーザーに許可をとる必要があります。

また、下図のようにFacebook APIを利用することで、同じFaceBookの友達がインスタグラムを使いはじめた時や、友達が投稿した時にお知らせしてくれたりします。

skitch (8)

instagramの画面

これはFacebook APIを使って、Facebookと連携していないと実現できない機能です。

このようにAPIを使うことで簡単にアプリケーション同士で連携できるようになります。APIを利用することで、アイディアや工夫次第で便利な新しいサービスを作ることも簡単になるのです。

APIの利用方法

shutterstock_400653643

画像:shutterstock

APIの利用方法をご説明します。利用方法はAPI全て共通なので、ご参考までに覚えておくと良いでしょう!

アプリをAPIサイトに登録する

まずは、APIを提供している企業の専用サイトへいき、ご自身のアプリケーション情報を登録します。

「このアプリケーションから利用しますよ!」とAPI側に教えてあげます。

登録する内容は、「アプリ名」「アプリケーションのドメイン(URL)」「どのURLへ返答すればいいか(コールバックと言われます)」などです。これらの情報を登録することによって、どのアプリケーションからのアクセスかが判断できるようになり、連携できるようになります。

APIキーとシークレットを取得する

APIは誰でも自由に使えますが、データを扱うことができるので、セキュリティに注意する必要があります。

そこで用意されているものが、「APIキー」「シークレット」といわれるものです。メールアドレスとパスワードの組み合わせのようなものです。APIを利用する場合には、必ず必要になります。

アプリに設定して準備完了

取得した「APIキー」と「シークレット」をアプリ側に設定します。これで、外部から勝手に利用されることがなくなります。

これでAPIを使う準備は完了です。

リファレンスを見ながら実装する

準備が終わったら、あとはAPIのリファレンスを見ながら機能の使い方を覚えるだけです。実際にコードを書いてみて、APIを利用してみると便利さが体感できます!

APIの種類

shutterstock_536303326

画像:shutterstock

APIには非常にたくさんの種類があり、作成するアプリケーションの種類によって、さまざまなAPIが用意されています。

こちらの記事を読んでいただければどのアプリにどんなAPIが対応しているのかがすぐにわかり、迷うことなくあなたに合ったAPIを見つけることができます。ご興味ある方はぜひご覧ください。

APIのおすすめ学習教材

shutterstock_381582874

画像:shutterstock

APIを使ってみたいけど、どうやって学習すればいいかわからない…

そういった方に、おすすめの学習教材をご紹介します。

コンテンツ/サイト

APIを学習できるサイトやコンテンツはネット上にたくさんあります。でも多すぎてどれを選んだらいいかわからない方もいらっしゃいますよね。

あなたの学習レベルにあったコンテンツを選ばないと、習得に時間がかかるどころか全く身につかず挫折してしまうこともありえます。

そこで、こちらの記事では初心者でも学べるオススメの学習コンテンツを3つご紹介いたします。これからAPIについて学びたい方やいま学習中の方はぜひご活用下さい。

書籍

APIは書籍でも学習できます。あなたの目的やレベルに合ったAPI学習本を選ぶことができればAPIを使ってアプリケーションを作っていくのに非常に役立ちますよ。

とはいえ、初心者の方だと本当にいい書籍はどれか分かりませんよね?こちらの記事でAPIのオススメ書籍を紹介しているので、あなたに合った学習書籍を探してみて下さい。

【完全保存版】APIがしっかりと学べるおすすめ本厳選5選!
更新日 : 2018年11月19日

APIを使えば未経験者でも1ヶ月でアプリ開発!

APIをうまく利用すれば、全くの未経験者でも1ヶ月でWebアプリを作成することができます。弊社の1ヶ月コースを受講されたよーこさんは全くの未経験から1ヶ月で文房具に関するWebアプリを実際に作成しました。

1人で学習するとなると1ヶ月でWebアプリを開発することは難しいかもしれません。しかし誰かからアドバイスをもらえる環境があれば、未経験者でもAPIを用いたWebアプリ開発は可能です。

API学習をより効率的に行いたい方は、勉強会やセミナーなどを利用してアドバイスのもらえる環境を作りましょう。わずか1ヶ月でWebアプリ開発に成功したよーこさんの体験談を知りたい方はこちらの記事をご覧ください。

未経験からWebアプリ開発にいたるまで!エンジニアになるためのプログラミングスキル修得方法
更新日 : 2018年11月29日

APIで効率的にアプリ開発したい人は侍エンジニア塾へ

先程ご紹介した通り、学習を効率的に進めるためには経験者からアドバイスをもらえる環境が大切になります。しかし、未経験者の場合はなかなか知り合いを作ることは難しいですよね。

そんな悩みを解決してくれるのが「プログラミングスクール」です。侍エンジニア塾では、1人のインストラクターが最後まであなたのプログラミング学習を徹底サポートいたします。

オンラインのマンツーマンレッスンであなたの進捗に合わせて授業が進むため、躓くことなく効率的にプログラミングを学ぶことが出来ますよ。先程ご紹介したよーこさんも、弊社マンツーマンレッスンで未経験からWebアプリ開発を成功させています。あなたもAPIを活用したオリジナルアプリを作成してみませんか?

また、弊社ではフリーランスの案件獲得サポートや転職・就職支援も行っているため、プログラミングを仕事にしたいという方もぜひご検討ください。

下記のカレンダーから日程を選択することで、「無料体験レッスン」を受講できます。ご興味のある方はぜひお試し下さい。

まとめ

APIについて解説してきましたが、いかがでしたでしょうか?

APIは実際に開発で使ってみたりすることで便利さを実感することができます。簡単に利用できるものもあるので、1つ使ってみるとだいたいの特徴や使い方のコツがつかめるでしょう。

ぜひAPIを使いこなして便利なサービスを作ってみましょう!

また、あなたが作ったアプリをAPIを利用することで、アイディアや工夫次第で便利な新しいサービスを作ることも簡単になるのです。

【たった3ヶ月でこんなの作れます】侍エンジニア塾、卒業生の作品を一挙大公開!オリジナルWEBアプリ4作品」では、弊社の卒業生が実際に作ったアプリをご紹介しています。

「ベジタリアン向けのレストラン検索サイト」など、どれもクオリティーが高く驚かれる方も多いと思います。数ヶ月あればこういったアプリを作成することができますので、ご興味ある方はぜひチャレンジしてみてください。

【卒業生作品まとめ】PCスキル皆無でもこんなWebアプリ作れました!
更新日 : 2019年5月15日
LINEで送る
Pocket

書いた人

佐野裕史

佐野裕史

侍エンジニア塾インストラクター。
主に技術担当をしています。

【経歴】
力仕事、接客業、営業職など様々な業界を経てIT業界に参入。
IT未経験からスタートし、1ヶ月で仕事獲得に奇跡的に成功。
1年半後にフリーランスに転身。

Web開発を主に行っており、得意とするのはRails、Ruby。
【技術スキル】
Rails、Ruby、Swift、Java(Android)、JavaScript

【趣味、趣向】
麻雀
MTG(マジックザギャザリング)
ダーツ、卓球、野球、ボウリングなどの球技

【Facebookページ】
https://www.facebook.com/hiroshi.sano.7
【Twitter】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説