プログラムを再利用できる!知っておきたい「API」について
Webサービスプロモーションページから、実際のWebサービス(ログイン~コンテンツ)まで、APIを利用せずに全てスクラッチ(0から人力で全て開発する)で開発をしているというWebサービスは存在しているのでしょうか。
APIは、特定のWebサービスをなるべく素早く構築し、世に普及させるためには必要不可欠な技術であり、エンジニアはAPIを利用するスキルを保有していることが、全ての大前提となるほどでもあります。
代表的なAPI
APIの仕組みに関して、機械的に説明しても中々簡単には理解できません。たったの一言で簡単に言い表すとしたら「他システムに対して、自システムの一機能の利用を許す」でしょうか。しかし、この一言でも中々イメージしにくいかと思います。
貴方が新しいWebサービスを利用する際、ほぼ全てのWebサービスは貴方の情報登録を促すでしょう。氏名、メールアドレス、性別 etcです。この情報登録はWebサービスにとって必要不可欠です。
しかし、一方で非常に煩わしいものです。非常に煩わしいというのは、Webサービスを構築するエンジニアからしても、Webサービスを利用しようとしているユーザーからしてもです。
特にユーザーは、情報登録画面を見ただけで拒否反応を示し、それだけでWebサービスを削除したり、アプリをアンインストールしてしまう人が大半ではないでしょうか。
このような問題を解決する為、さらには世間一般にプラットフォームとしての位置付けを強固にするため、FacebookはFacebook登録/ログイン機能を、LINEはLINE登録/ログイン機能をAPIとして開放し、一般のWebサービスであっても、その個別情報登録画面を設けずに、FacebookなりLINEのユーザー情報を引き出すことが出来るのです。
その為、ユーザーは、Facebookユーザーであるならば、[Facebook登録をする]といったボタンを押し、そこに+αの情報を加えることにより、簡易に情報登録を完了し、Webサービスを利用できるようになるのです。
このような、新規登録/ログインに利用されるAPIは、代表的なAPIといっても良いのではないでしょうか。勿論、公開されているWebサービス/アプリの数だけAPIが存在する為、「代表的なAPI」という表現は少々荒々しいものでもあります。こちらはご了承いただければと思います。
参考:APIとは?
APIを利用しなければならない機能
プログラムを再利用できるAPIですが、再利用というより外部APIを利用しなければWebサービスとして成り立たないシステムも存在します。こちらも同様に、多くの事例を挙げることが可能ですが、一番は決済の伴うシステムでしょう。
ECサイトや課金が発生し、クレジットカードやPayPalを利用しなくてはならないシステムです。カード審査や、いくら利用するかといった情報は、当然ながらカード会社に情報として渡されなければならないので、そもそも外部APIを利用せずに独自でシステムを完結ことが不可能なのです。
決済機能を伴っているシステムは、クレジットカード会社の膨大なAPI資料と、提供されるテスト環境を利用して、緻密な検証をしなくてはなりません。単純にAPIと言っても、ユーザーの利用する機能により、その重要度もピンキリなのです。
実は、意識せずに目にしているAPI
前述したログイン機能以上に、一般的なユーザーが目にしているAPIといえば、なんといってもMAP関連のAPIでしょう。特にGoogleMapに関するAPIは、グルメ関連のサイトをはじめとして、あらゆるサイトに埋め込まれており、そのサイトをよりユーザーフレンドリーにしています。
現在では、店は紹介しているものの、ページ上でGoogleMapで場所が示されていないWebサイトは見る気すらしません。しかし、GoogleMapが実装されていると、Googleからしても、Webサイトオーナーからしても、Webサイトを構築しているエンジニアからしても、紹介されている店のオーナーからしても、さらにはページを閲覧しているユーザーにとっても嬉しいのです。
このような例は、GoogleMapのみならず、駅の乗り換え案内や、翻訳、為替レート情報の参照等々、まさしく様々な場面で、ユーザーにそれと分からないように浸透しているのです。
その為、APIに関して無知なエンジニアというのは、考えられませんし、それこそ大企業のレガシーシステムの運用・保守をしているくらいしか、扱ったことのないエンジニアはいないのではないでしょうか。
まとめ
APIを利用すると、新規に機能をコーディングしなくても、既存の仕組みを引っ張ってくることが出来るため、「早期に、品質が保証され、ユーザーに浸透している」機能を実装することが可能なのです。
特に地図から翻訳、広告運用等様々なサービスを保有するGoogleは、およそ一般人が考えられる全ての機能を利用できるような多様なAPIを保有しており、実装力さえあれば頭の中で思い浮かべられるようなシステムを、そのまますぐさま構築出来てしまうことが可能です。
この知識は、エンジニアであれ、ディレクターであれ、ユーザーであれ知っておくべきものであり、IT業界における共通言語として認識しておきましょう。