仮想オフィスを活用したITエンジニア研修とは?
主にWeb系のアプリ開発をしている際に耳にするのが「API」という単語。
その「API」とは何か、そしてAPI連携をすることでどのようなメリットが得られるのかを解説します。
1. API連携とは?
まずは、API連携とは何か?から解説します。
①APIとは?
API(エーピーアイ)とは、Application Programming Interface(アプリケーション・プログラミング・インターフェース)の略で、直訳すると「アプリケーションを連携する仕組み」のことです。
APIの詳しい解説は下記の記事を参照してください。
本来のAPIとは複数のプログラムを連携するためのインターフェース(仕組み)を指しますが、本記事では主にWeb上で公開されているWeb API(ウェブエーピーアイ)について解説していきます。
②API連携とは?
API連携とは、公開されているWeb APIを利用することを指します。
主に、外部のサービスを利用することで、自身のサービスを拡張することを目的に使われます。
前述の通り、APIは「外部のサービスを利用するためのインターフェイス」であり、APIはあくまでも”手段”であることに留意しましょう。
サービスを提供する各社が、自社サービスを利用してもらうために用意した「入口」がAPIであり、利用者はその入口であるAPIを通じてサービスの機能を使えるようになるのです。
2. API連携の利用例
API連携とは、一体どのように活用されているのでしょうか。提供されているAPIサービスの例の一部を紹介します。
①決済サービス
クレジットカードや各通信キャリアのキャリア決済など、様々なキャッシュレス決済が登場しており、飲食店のデリバリーも「ネット上で決済するのが普通」となりました。
ECサイトなどの販売店ではネット決済が必須と言えるでしょう。
そんな中で、独自の決済サービスを開発するのは工数もかかりますし、セキュリティ上の課題もたくさん発生します。
そのため、自サイトで決済できるようにするためには専門の決済サービスを利用するのが一般的です。
Amazon PayやLINE Pay、楽天Pay、PayPalといった各社の決済サービスとAPI連携することで、自サイト内にクレジットカードや支払情報を保存することなく決済を完了できます。
②地図の表示
周辺地図や駅からの道のりなどをユーザーに提示する場合には、マップ機能を持つサービスのAPIを利用すると良いでしょう。
マップを提供するAPIサービスとしてはGoogleマップが有名ですが、ゼンリンやYahoo!などもマップのAPIを提供しています。
これらのAPIを使うことで、自サイトの中にマップを表示したり、現在地から店舗へのルートを提示したりできます。
また、近くのスポットにピンを設定したり、独自のポイントマップを作成したりするなど様々な使い方ができるので、マニュアルを読んでみてはいかがでしょうか。
③チャットボットの作成
近年、AI技術の発達により「チャットボット」の性能が非常に向上しました。
チャットボットとは、Webサイトに配置することで、利用者が持っている疑問などをチャット形式でAIが返答してくれるというサービスを実現できるものです。
簡易的とはいえ、チャットボットが顧客対応をしてくれることから、多くのWebサイトでチャットボットの採用が進んでいます。
IBM WatsonやGoogle Dialogflowなど、AIに強い各社がチャットボットのエンジンを提供しているため、自社独自の受け答えを登録するだけで簡単にチャットボットを作成できます。
そのほか、カスタマイズがほぼ不要で使える各業種向けのチャットボットを各社が提供しているので、ぜひ調べてみてください。
④データベースやデータストア
クラウド上で動作するマネージドデータベースやストレージサービスも、APIを通してデータの保管が可能です。
AWSのS3やDynamoDB、RDSといったサービスは、用意されたAPIを通してデータの保管をしてくれます。
特に、JDBCドライバを経由してRDB(リレーショナルデータベース)として使用できるサービスも存在しますので、利用状況に応じて便利に活用すると良いでしょう。
⑤自社サービスのAPIを開発して公開
APIは、他社の開発したAPIを使用するだけではありません。
もちろん、自社で開発しているサービスの機能をAPIとして公開できます。
開発したAPIを連携することで、自社内の他のサービスとの連携や、他社サービスから自社のサービスをAPI連携で利用してもらうことも可能です。
Spring Bootを用いたWeb APIの開発方法は以下のページを参考にしてみてください。
3. API連携のメリット・デメリット
API連携の適用例を理解したところで、メリットとデメリットを解説します。
①メリット
まずは、API連携のメリットから紹介します。
・機能の実現が容易
API連携をすることで、得られる最大のメリットが「高速開発が可能である」という点。
APIとして提供されている機能の多くは、そのAPIをコールするだけ。
つまり、自身で開発する場合と比較しても、圧倒的に素早くかつ簡単に機能を実現できるのです。
目的に応じた適切なAPIを選択することで、少しでも早い価値提供が可能であることを覚えておきましょう。
・セキュリティの向上
特に、決済系のような金銭や個人情報が絡むサービスのAPIには、あらかじめ高いセキュリティが保証されていることが多いです。
クレジットカード情報や住所といった情報の管理もAPIの接続先に任せることで、個人情報を自サービス内に保管する必要もなくなります。
より堅牢なセキュリティが担保される場所に情報を保管することで、より高いセキュリティを担保することも可能です。
②デメリット
メリットも大きいAPI連携ですが、もちろんデメリットも存在します。
メリットだけに目を取られず、デメリットもしっかりと把握しておきましょう。
・連携先への依存
連携先となるAPIの中身は、呼び出している連携元からするとブラックボックスであり、APIの処理を知ることはできません。
把握できるのはAPIの入力とそれに対する出力のみです。
また、いまあなたが開発しているシステムに合わせて、連携先のAPIの仕様を変えることは実質不可能といえます。
そのため、外部APIを使用する場合には、そのAPIの仕様にあわせて処理を構成する必要があるのです。
ほとんどの場合は、利用するAPIに依存する形で実装が進むため、ほかのAPIに変更する際には苦労する可能性が高いことをリスクとして考える必要があります。
・情報が分散する
機密性の高い情報を分離することでセキュリティ向上につながるという点はメリットとしてあげましたが、
データの可用性や保守性という点においてはデメリットになる場合もあります。
例えば、複数のAPIを利用してサイトを構築した場合に使用しているいずれか一つのAPIが利用不可能となったとします。
そのAPIがシステムとして重要な情報を持っていた場合には情報にアクセスできなくなるため、自身のシステムが利用できないことにもなりかねません。
また、情報が分散することで管理が面倒になる場合もあります。
API連携をする場合には、連携先のシステムが停止した際にも正常に稼働するような設計をすることを心がけましょう。
4. API連携する前に確認すること
外部APIを利用しようと考えた際には、まず以下のことを確認しましょう。
①費用がかかる場合がある
無料で利用できるAPIも中には存在しますが、APIのほとんどは利用に費用がかかると考えてください。
多くのAPIは、無料枠やトライアル期間が設けられているため無料で始められます。
利用する頻度や回数、期間によっていきなり費用が発生することもあるため、料金体系をしっかりと確認しておきましょう。
特に、決済サービスの場合には「決済一回につき○%」といった費用が発生する場合や、「非営利の場合に限り無料」というAPIも存在します。
利用の際には、必ず利用規定と料金を確認の上、予算計画を立てるようにしましょう。
②審査が必要な場合がある
APIによっては、事前に審査が必要な場合があります。
特に決済系のAPIは審査が厳しく、申し込んでから利用開始まで時間がかかる場合や、最悪の場合には審査に落ちる可能性もあります。
「申し込めば何でも使える」とは限らないため注意しましょう。
5. API連携の方法
これまで紹介してきたようなAPI連携をするために必要な手順を紹介します。
なお、ここで紹介した方法は一般的な例であり、契約する企業やサービス内容によって異なるため、使用する際には各サービスの規約をしっかり確認しましょう。
①APIの提供元にユーザー登録
まずは、APIの提供元にユーザー登録します。
ユーザー登録の際に必要な情報は、主に以下の通りです。
特に、審査が必要なAPIであれば、より詳細な情報を求められるので、あらかじめ準備しておくと良いでしょう。
・ 担当者氏名
・ 連絡先電話番号
・ 連絡先メールアドレス
・ 住所
・ クレジットカード番号
また、個人契約か企業契約かで必要な情報が異なる場合があります。
企業の名義で契約する場合には、事前に必要な情報や契約内容を確認するようにしましょう。
場合によっては契約書を取り交わす必要もありますので、社内調整が必要な場合にはあらかじめ準備を進めておくとスムーズに進みます。
②APIキー、シークレットキーを取得
ユーザー登録が完了したら、APIを利用する準備を行います。
ほとんどのAPIでは、ユーザーごとに固有の認証情報が発行されます。
その情報がAPIキーとシークレットキーです。
APIキーとシークレットキーは、Webサイトなどを経由して発行されるので、それをローカルに保存します。
シークレットキーは、サービスによっては「アクセスキー」や「クライアントシークレット」と表現される場合もあるので注意しましょう。
キーの保管は厳重に!
APIの提供者はこのキーをもとにユーザーを特定し、利用料に応じて制限や課金を行います。
そのため、この二つのキーを漏洩した場合、第三者があなたと偽ってAPIを利用できてしまうのです。
予期しない料金が発生するのはもちろんのこと、もし犯罪に使用された場合には警察から連絡が来る可能性もあります。
誤ってAWSのアクセスキーをGitHubに公開してしまった結果、悪用され100万円以上の課金が発生した、という事件もありました。
発行されたキーは個人情報と同じレベルで大切なものです。
誤って漏洩しないよう適切に保管することを心がけましょう。
③キーを使ってアプリと連携を行う
キーを取得できたら、開発の準備は完了です。
取得したキーを利用して、自サービスのアプリからAPIを呼び出す処理を実装しましょう。
APIによっては、REST API(レスト エーピーアイ)形式で提供されていたり、アプリケーションに組み込むSDK(エスディーケー)が提供されていたりするので、事前に「どうやったら実装できるのか」をあらかじめ確認しておくことが大事です。
多くの場合には公式マニュアルが公開されており、使用するプログラミング言語に応じたサンプルが提供されています。
場合によってはコピー&ペーストで済む場合もあるでしょう。
これらのサンプルはユーザー登録をしなくてもあらかじめ確認できることが多く、利用者数の多いAPIであれば技術ブログなどでサンプルコードが解説されている場合もあります。
組み込み方をあらかじめおさえておくとスムーズに開発が進みますので、ユーザー登録の前にまずは実装方法を調査するのがおすすめです。
6. プログラミングを学ぶならトレノキャンプへ
トレノキャンプではプログラミングを実用的に学ぶためのコースを、オンラインで提供しています。オンデマンド配信なので、いつでも好きなときに受講が可能です。講座の詳しい内容は下記のバナーをクリックしてご覧ください。
※掲載された社名、製品名は、各社の商標及び登録商標です。