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

佐野裕史
書いた人 佐野裕史

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

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

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

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

Webアプリを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から作る必要がありません。それによって、開発時間を大幅に短縮できます。さらに無料で利用できるため、開発コストも大幅に削減でき、かつ効率的にアプリケーションを制作することができるのです。他にも、ツールやサービスを使うことでもっとアプリ開発を効率化することができますよ。

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

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

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

画像:www.sejuku.net

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

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

skitch (8)

画像:www.sejuku.net
これは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を学習できるサイトやコンテンツはネット上にたくさんあります。

でも、多すぎてどれを選んだらいいかわからないかたはこちらの記事を読んでください。おすすめの学習コンテンツ/サイトを5つ選定し、その内容の説明とどういった人にオススメなのかをご紹介しています。あなたに合ったコンテンツ/サイトが見つかりますので、ぜひ参考にしてください。

書籍

APIは書籍でも学習できます。

あなたの目的、レベルにしっかりと合ったAPI学習本を選ぶことができればAPIを使ってアプリケーションを作っていくのに非常に役立ちます。APIの書籍は、こちらの記事でご紹介していますので、効率良く学習を進めていただくのにぜひ参考にしてみてください。

まとめ

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

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

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

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

【たった3ヶ月でこんなの作れます】侍エンジニア塾、卒業生の作品を一挙大公開!オリジナルWEBアプリ4作品」では、弊社の卒業生が実際に作ったアプリをご紹介しています。「ベジタリアン向けのレストラン検索サイト」など、どれもクオリティーが高く驚かれる方も多いと思います。数ヶ月あればこういったアプリを作成することができますので、ご興味ある方はぜひチャレンジしてみてください。

おすすめのコンテンツ

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

「何の言語から勉強すればいいかわからない・・・」そんなあなたに質問に答えていくだけで、何の言語を学べば良いのか診断いたします!未経験から6ヶ月でプログラミング習得に向けた学習プランが1分で分かる!

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

3000名以上来場の人気セミナーが開催決定

18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

  • 日付:3/30(日)
  • 時間:14:00〜17:00終了予定
  • 場所:当社 道玄坂オフィス
  • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
  • 参加費:無料
  • URL:https://seminar.sejuku.net/
詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

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】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。