たとえるなら

このサイトのマスコット、帽子をかぶった青い小鳥のルートンが旗を振っている

レストランの注文カウンターです。「ハンバーガーセットひとつ」と決められた形式で注文すれば、厨房の中がどうなっているかを知らなくても料理が出てきます。APIも同じで、決められた形式でお願いすれば、相手のプログラムの中身を知らなくても結果だけ受け取れます。

天気アプリ あなたのスマホ データ提供元 気象データのサーバー 「東京の天気は?」(決まった形式) 「晴れです」とデータを返す
決められた形式でお願いすれば、相手の中身を知らなくても結果を受け取れる。それがAPI。

もう少しくわしく

API(エーピーアイ)は、プログラムがプログラムに用事を頼むための窓口です。窓口には「こういう形式でお願いすれば、こういう形式で答えを返します」というルールが決められていて、そのルールさえ守れば、相手の内部の仕組みをまったく知らなくても機能を利用できます。別の会社が作った機能を、自分のサービスの一部として使えるようになる、というのがAPIのありがたさです。

身近な例はたくさんあります。天気アプリは気象データ提供元のAPIに「東京の今日の天気は?」と問い合わせ、地図を埋めこんだお店のサイトは地図サービスのAPIを利用し、「Googleアカウントでログイン」もGoogleのAPIとの連携で実現しています。決済はこの会社、地図はこの会社と組み合わせられるので、少人数でも高機能なサービスを短期間で作れるようになりました。

混同されやすいのがライブラリです。ライブラリは便利な部品を自分のプログラムに取りこんで使うもので、手元で動きます。APIは相手のサーバーに問い合わせて結果をもらう窓口なので、動いているのはネットワークの向こう側です。また、人が画面から使うのがWebサービス、プログラムが直接使うのがAPIという分け方もでき、同じ機能に両方の入口があることも珍しくありません。

現場の流れはこうです。まず提供元のAPI仕様書を読み、どんな形式でお願いすれば何が返るのかを確認します。次に利用登録をして鍵(APIキー)を受け取り、試しに問い合わせて返ってくる中身を目で確かめます。そのうえで自分のプログラムに組みこみ、相手のサービスとつないだ状態でテストします。この確認を連携テストと呼ぶ現場が多いです。

落とし穴はいくつもあります。決められた回数を超えて問い合わせて止められる、鍵をうっかり公開して他人に使われる、相手の仕様変更で突然動かなくなる、相手のサービスが止まると自分のサービスも止まる——相手の都合に左右されるのがAPI連携の弱点です。だからこそ、うまくいかなかったときにどう振る舞うかを決めておくことが設計の一部になります。無料で使える範囲を超えて費用が発生する例もあるため、問い合わせ回数の見積もりも欠かせません。

非エンジニアの方に覚えておいてほしいのは、「そのデータ、APIで取れますか」と聞いてよいということです。毎月手作業でコピーしている集計が、窓口があれば自動化できる場合があります。ただし窓口が用意されていない機能は取れません。提供元がAPIを公開しているか、料金や回数の条件はどうかを確認するところから話が始まります。

補足すると、APIは外部サービスとの連携だけのものではありません。社内のシステム同士をつなぐ窓口としても使われ、大きなシステムを小さな部品に分けて作るときの境界線にもなります。窓口の形さえ決めておけば、中身は別のチームが自由に作り替えられる——この性質が、いまの開発のしやすさを支えています。社内で使う場合も、窓口の決めごとを文書に残しておくことが前提になります。

現場での使われ方

「そのデータ、APIで取れますよ」

手作業でコピーしなくても、プログラムから窓口経由で自動取得できるという意味です。定例の集計作業をなくせることがあるため、非エンジニアにとってもうれしい一言です。

「決済サービスとAPI連携しています」

自社のシステムと外部の決済サービスが、APIという窓口を通じて自動でやりとりしているということです。相手が止まると自分側も止まるため、監視の対象にもなります。

「まず一回APIを叩いて、返ってくる中身を見てみましょう」

組みこむ前に試しに問い合わせて、実際の答えの形を確かめようという提案です。「叩く」は問い合わせを送ることの口語表現で、現場で非常によく使われます。

「APIキーはチャットに貼らないでください」

鍵は窓口を使う権限そのものなので、漏れると他人に使われて費用が発生したり、データを取られたりします。決められた保管場所で管理するのが基本のルールです。

よくある質問

「APIを叩く」とはどういう意味ですか?

APIに問い合わせ(リクエスト)を送ることを、現場では「叩く」と表現します。「一回叩いてみて」は「試しに問い合わせて、返ってくる結果を確認してみて」という意味です。乱暴な操作をするわけではなく、単に呼び出すことを指す口語です。「APIを呼ぶ」「リクエストを投げる」も同じ意味で使われます。

APIは誰でも使えますか?

提供元によります。無料で公開されているものもあれば、契約や利用登録をして発行される鍵(APIキー)が必要なもの、問い合わせた回数に応じて課金されるものもあります。使う前に、利用条件と料金、使ってよい範囲を必ず確認してください。業務で使う場合は、契約や規約の確認を担当者に相談してください。

APIとライブラリの違いは何ですか?

ライブラリは部品を自分のプログラムに取りこんで手元で動かすもの、APIは相手のサーバーに問い合わせて結果を受け取る窓口です。ライブラリは通信なしで動きますが、APIは相手が止まれば使えません。どちらも「他人が作ったものを借りる」点は共通しています。

APIキーとは何ですか?

その窓口を使う権限を示す、文字列の鍵です。誰からの問い合わせかを判別し、回数や料金を数えるために使われます。漏れると他人に使われて費用が発生することがあるため、プログラムの中に直接書きこまず、決められた場所で管理するのが基本です。人と共有せず、担当者が変わるときは作り直すのが安全です。

API連携すると、相手のサービスが止まったらどうなりますか?

その機能は使えなくなります。決済が通らない、地図が表示されないといった影響が出るため、止まったときにどう見せるかを設計段階で決めておきます。画面にお知らせを出す、あとでやり直す、一部の機能だけ止める、といった対応が現場によって選ばれます。契約するときに、止まったときの取り決めを確認しておくと安心です。

関連用語

関連する記事

エンジニア職種図鑑

この言葉を使って働く人たちの仕事を、7つの職種で

ITの学び方ガイド

もっと知りたくなったら。教材の選び方を3ステップで