スライドショースライドショースライドショー

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

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

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

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

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

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】
更新日 : 2019年9月11日

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

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

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

APIが使われている実例

shutterstock_385720936

画像:shutterstock

Facebook

現在使われている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を利用することで、アイディアや工夫次第で便利な新しいサービスを作ることも簡単になるのです。

LINE

LINEにもAPIが存在していて

  • チャットボットの開発
  • LINEログイン機能
  • IoT開発
  • 音声アシスタントの開発
  • LINE決済機能
  • ソーシャルボタン・通知機能


このような機能を利用することが可能となっています。

LINE APIのできることって何?基礎知識から使い方までを徹底解説
更新日 : 2019年10月16日

YouTube

YouTubeAPIは、動画のパフォーマンスを高めるための分析ができる様になる機能が追加できます。動画で集客を考えている人は、こういった分析ができると他の競合との集客で差をつけることも可能になります。

YouTubeAPIでできることを初心者でも理解できるように徹底解説
更新日 : 2019年9月5日

チャットワーク

業務効率化のためのチャットツールで有名なチャットワークにもAPIが存在します。チャットワークAPIでできることはたくさんあります。

  • 未読数、未完了タスク数を取得
  • タスク一覧を取得
  • タスク情報の取得
  • チャット一覧取得
  • チャット作成
  • チャット情報の取得
  • チャット情報の変更
  • チャットメンバーの一覧を取得


などなど、チャットワークで使える機能を実装することが可能になります。

チャットワークAPIの使い方(タスクの追加、メールとの連携も解説)
更新日 : 2019年5月16日

APIには多くの種類がある

shutterstock_536303326

画像:shutterstock

先程、APIの活用事例をご紹介しましたが、APIにはまだまだたくさんの種類があり、作成するアプリケーションの種類によって、さまざまなAPIが用意されています。

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

APIの利用方法

shutterstock_400653643

画像:shutterstock

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

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

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

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

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

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

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

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

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

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

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

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

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

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

APIを使って、Web開発するためにはまずWebアプリ開発の知識を知る必要があります。基礎からWebアプリを開発する方法をしっかりと理解して、APIを使ったWebサービス開発ができるように準備をしっかり行いましょう。

Webアプリ開発入門者がゼロからモノを作れるようになるまでの5ステップ
更新日 : 2019年11月20日

APIを使ったWebサービスを作るためには、アイディアも必要です。どのようなサービスにするのか、その機能をどのように活かすかをしっかり考えてから、Webアプリ開発を行いましょう。

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

APIを学ぶ方法

shutterstock_381582874

画像:shutterstock

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

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

コンテンツ/サイト

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

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

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

書籍

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

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

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

プログラミングスクール

先程紹介した学習方法はあくまで独学で学習する方法です。ですが、独学で学習にはリスクはつきものです。

298名を対象とするアンケート

そんな独学で学習する298名の人に侍エンジニア塾では、アンケートを実施いたしました。その結果、独学での学習に挫折や行き詰まりを感じると答えた人は87.5%もいることがわかりました。

じゃどうすれば挫折せずに学習を続けられるのか?そこで、こんなアンケートも実施しました。


298名を対象とするアンケート

「挫折を感じた時にあったらよかったと感じたこと」についてもアンケートを取った結果、1番多かったものとして「不明点を気軽に聞ける環境」があげられています。

プログラミング学習には必ずエラーがつきものです。そういったエラーで挫折する人が多いんです。

プログラミングスクールでは、そういったエラーのサポートをする体制が整っているため挫折しにくい環境になっています。なので、未経験の人にプログラミングスクールがおすすめなんです。

いきなりスクールに入るのは抵抗あるな・・・

このように感じる人は、サクッと話の聞ける「無料体験レッスン」に参加してみましょう。あなたの悩みや疑問点を解決することができます。

無料体験レッスンを予約する

まとめ

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

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

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

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

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

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

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

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

cta_under_btn

書いた人

佐野裕史

佐野裕史

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

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

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

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

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

おすすめコンテンツ

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

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