プログラミング

APIとは?初心者にわかりやすくAPIコードを交えて簡単に解説

プログラミング
この記事は約20分で読めます。

エンジニアの方やプログラマーの方はサービス開発を行っている上で、プログラミングを必ずしていることでしょう。そんなWEB開発に携わっている方であれば「API」という言葉を聞いたことが多々あると思いますし、実際に最低1回は使用したことがある人ばかりではないでしょうか。

世の中には色々なITサービスがありますが、APIを外部に公開することでサービスを連携させて、世の中をより便利にすることが可能です。さらに、APIを使用する側のエンジニアにとっては、その部分を0から開発する必要がなく、外部APIを利用して機能を簡単に実装できます。

そんなエンジニアには当たり前のAPIですが、プログラミング初心者の方や、APIを勉強しようと思っている方など、APIをよく知らない人に向けて、「APIの使い方や種類、APIのメリット・デメリット、 APIの使用例、APIエコノミー」などの関連するワードについてもご紹介します。

APIを知ることであのサービスもAPIを利用していたのか!!と驚くかも知れませんね。それではAPIについて初心者の方でも簡単に理解できるようにわかりやすく解説していきます。

APIの理解度テスト

問題1:APIの主な目的は何ですか?

問題2:APIのメリットは何ですか?

問題3:APIの例を1つ挙げてください。

問題4:APIを使用する際に考慮すべきセキュリティ上のリスクは何ですか?

問題5:APIのエンドポイントとは何ですか?

それではこれからAPIの理解を深めていくために、わかりやすく解説していきます。

APIとは?

APIとは、「Application Programming Interface(アプリケーション・プログラミング・インターフェイス)」の略称で、読み方は「エーピーアイ」になります。ちょっとそのまますぎてびっくりですが、APIと初めて聞いたときは、頭の中が「?」だった記憶があります。

とりあえずエンジニアの方がこぞってAPIを連呼していたので、自然と覚えてしまいました。困った時には「API連携」といえば、プログラミングわかってる風を醸し出せるみたいな・・・w

ちょっと話が逸れてしまいましたが、APIを軽く説明するとアプリケーションをプログラミングするためのインターフェースになるのですが、アプリケーションやソフトウェア同士をつなげる橋渡し役のようなイメージですね。

まだちょっと理解できないという方もいらっしゃるかと思うので、APIをさらにわかりやすく説明すると、何か機能を拡張したい時に、自分たちで開発していない外部の機能を付与したいときにAPI連携をしてより便利になる感じです。

例えば、家電メーカーがテレビを作るときには自社で全ての部品を作っている方が少ないです。テレビのパネルは韓国のLG製が多く、そのパネルをソニーやパナソニックといったメーカーが仕入れています。これを組み合わせることを連携と捉えた場合、テレビを作るには多くの部品(機能)を組み合わせて(連携)することでできているんですね。

つまりあなたが利用しているWEBサービスは実は何かしらの外部サービスのAPI連携をして機能拡張していることが多く、私たち消費者はそれを知らずに利用していることがほとんどです。

まだ理解できない方は、APIの具体的な事例を交えてご紹介するとわかりやすいと思います。

API連携を事例でわかりやすく理解

これから事例を紹介してAPIをもっと理解していきましょう。

最も身近な例としては、GoogleマップにもAPIがあります。

Googleマップを一度は使ったことがあると思います。スマホのGoogleマップのアプリで使うことも多いですが、ウェブサイト内にGoogleマップが埋まっていることを経験したことはないでしょうか?

よくあるのが食べログなどのグルメサイトの地図情報にGoogleマップで飲食店の位置がパッとわかりやすくなっています。

ちなみに以下のようにこの記事にもGoogleマップのAPIを利用して埋め込むこともできます(こちらは東京駅を指しています)。

このGoogleマップのAPIを使うだけで、ウェブサイト内に目的の場所までの移動距離、経路などを表示させたりできますが、これがAPI連携というのをご存知ない方がほとんどです。

Googleマップは誰でも簡単に利用できる事例でしたが、もうちょっとエンジニアっぽいAPI連携となるとグルメ情報サイトのぐるなびもAPIを公開しています。

例えば、「新宿のレストランの情報が欲しい」とAPIサーバーにリクエスト(要求)すれば、ぐるなびAPIから新宿のレストランの情報がレスポンス(応答)として返ってきます。

このグルメサイトのAPIを利用すれば、グルメサイトのまとめ検索サイトを作ることも可能かもしれません!!

どういうことかというと、ぐるなび以外にも食べログ・ホットペッパーグルメ・Rettyなどの色々なグルメサイトの情報をAPIでリクエストして返ってきた情報(データ)を成形してグルメサイトのまとめ検索サイトに表示させるようにすればいいだけです。

私もグルメが好きなので、行きたいお店を見つけたら、食べログやぐるなび、Rettyと複数のグルメサイトで写真を見たりします。さらにはInstagramで店名を検索して、投稿された写真を見ることが多いので、InstagramのAPIも連携させてしまえば、より店名情報と写真がリッチなグルメサイトまとめ検索サイトを作れてしまうかもしれません。

ちょっと長くなってしまいましたが、これがAPIの仕組みです。

このように、アプリケーションに外部のアプリケーションの機能を連携させることで、利便性が向上するため、多くのITサービスはAPIで繋がっているんですね。

WEB APIは4種類

WEB APIには大きく分けて以下の4種類のAPIが存在します。

  1. パブリックAPI
  2. パートナーAPI
  3. プライベートAPI
  4. コンポジットAPI

4つのWEB APIをそれぞれわかりやすく解説していきます。

パブリックAPI

パブリックAPIは外部のユーザーがアクセスできる、公開されているAPIです。

パブリック(public)とは英語で公開や公的なという意味があるので、APIの利用申請をして許可を受けた人だけが使えるものではなく、誰でも自由に使えるAPIとなります(サービスによっては簡単な登録やAPIキーを必要とする場合もあります)。

別名でオープンAPIや外部APIとも呼ばれています。

公に公開されているためセキュリティ対策が緩く、開発者や外部ユーザーがデータにアクセスしやすい状態です。

先程紹介したGoogleMapsのAPIもパブリックAPIに該当しますし、他にはSNSのFacebook API、Twitter APIもあります。さらにはbitFlyerのような仮想通貨系もパブリックAPIとしてあります。

パートナーAPI

パートナーAPIとは、特定のパートナーからのアクセスのみ許可しているAPIです。
先ほどのパブリックAPIよりもセキュリティが強化されており、特定の企業とのみAPI連携を行いたいときに使用するものがパートナーAPIです。

パートナーにならないと利用できないということもあり、クローズドとなっています。

プライベートAPI

プライベートAPIは企業やグループ内で限定して利用されるAPIです。
外部からのアクセスを遮断するため、社内の基幹システムと社内システムのAPI連携を行う際に使用します。

社内のみとなっているため、セキュリティ面はかなり強固で、外部に漏れると大ごとに発生するようなデータを扱っています。

コンポジットAPI

コンポジット(Composite)は日本語では「複数のものを合成する」「混成の」といった意味を指します。
つまりコンポジットAPIは、ハブ的役割を担っており、複数のAPIやアプリケーションへアクセスできるようにするAPIです。

REST APIとは

RESTとはREpresentational State Transferの略称で、RESTful APIとも呼ばれています。ちなみにREpresentationalは「具象的」、Stateは「状態」、Transferは「転送」を意味します。
REST APIは、このRESTの原則に沿って実装されているAPIとなり、RESTの原則に沿っているシステムを「RESTfulなシステム」と呼ぶこともあります。

RESTの4原則とは

RESTは以下の4つの原則で成り立っています。

  1. アドレス可能性
  2. ステートレス性
  3. 接続性
  4. 統一インターフェース

次からそれぞれわかりやすく解説していきます。

RESTの4原則①:アドレス可能性

アドレス可能性とは、全ての情報が一意(ユニーク)なURIで表現できるようになっていることです。一意なURIで表現した場合は唯一無二になるため、どのリソースなのかがひと目でわかりやすくなります。

ちなみに、URIはURLとよく混同しますが、ほぼ同じものと捉えても問題ありません。

RESTの4原則②:ステートレス性

ステートレス(stateless)を日本語に訳すと「状態を持たない」となります。

ステートレス性とは、システムが現在の状態を持たず、その時受け取った入力のリクエストによってのみ結果が出力されることです。

セッションの履歴などを残さず、その時のリクエストに応じて、その都度結果を返すことから、他のセッションや結果に影響されないため、シンプルな設計にすることが可能です。

RESTの4原則③:接続性

接続性は別のリソースのリンクを含めることができ、さらにそれらへの接続が可能であることを指します。RESTfulなシステム同士の円滑な情報連携が可能です。

RESTの4原則④:統一インターフェース

統一インターフェースでは、あらかじめ決められた規則、方法でやり取りを行う原則です。
情報の取得、作成、更新、削除などをHTTPメソッドを利用して、一貫性を持たせた操作を行います。
また、セッションはJSON形式で行われることが多いです。

JSONとは?初心者にわかりやすく説明|APIのデータ連携にも
JSONとは、「JavaScript Object Notation」の略称で、JavaScriptのオブジェクト記法のデータ形式です。2002年にダグラス・クロックフォードに開発され、WEBアプリケーションやAPI連携などで多く利用されています。JSONのメリットや、CSV・XMLとの違いを初心者にわかりやすく解説。

APIのプログラミングコード例

PythonのAPIフォーマット

APIが何となく理解できたかと思いますが、簡単なフォーマット例としてpythonでAPIを使う場合を記載します。あくまでイメージをしてもらうためのコードだと思ってください。

requestsライブラリを使用してAPIにGETリクエストを送信し、レスポンスを取得します。APIのエンドポイントやパラメーターは、実際のAPIに合わせて変更する必要があります。また、レスポンスのステータスコードを確認し、適切に処理することも重要です。

Web APIエンドポイントとは?エントリーポイントとの違いや設計注意点
API(Application Programming Interface)は、今の世の中では欠かせない機能ですが、様々なアプリケーションをデータ連携することができます。しかしAPIを使う時に、URIと言ったエンドポイントやエントリーポイントといった意味の違いについて説明します。

import requests

# APIのエンドポイント
url = "https://api.example.com/data"

# パラメーター(必要に応じて変更してください)
params = {
    "key": "your_api_key",
    "query": "example_query"
}

# APIにリクエストを送信してレスポンスを取得
response = requests.get(url, params=params)

# レスポンスのステータスコードを確認
if response.status_code == 200:
    # データを取得
    data = response.json()
    # 取得したデータを処理するコードをここに書く
    print(data)
else:
    # エラーが発生した場合の処理
    print("Error:", response.status_code)

OpenWeatherMap API

次は実際に公開されているAPIでの連携コードをご紹介します。

オープンソースでデータ連携できるAPIサービスの一例として、OpenWeatherMapがあります。OpenWeatherMapは、世界中の天気情報を提供するAPIサービスであり、オープンソースでデータにアクセスできます。

Pythonを使用してOpenWeatherMap APIにアクセスし、指定した都市の天気情報を取得する例です。

OpenWeatherMap APIにアクセスするためのURLを構築し、リクエストを送信してレスポンスを取得します。APIキーと都市名を適切に設定してください。また、units=metricを指定することで摂氏での温度情報を取得しています。


import requests

def get_weather(api_key, city):
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
    
    response = requests.get(url)
    
    if response.status_code == 200:
        data = response.json()
        return data
    else:
        print("Error:", response.status_code)
        return None

# あなたのOpenWeatherMap APIキー
api_key = "your_api_key"

# 取得したい都市名
city = "Tokyo"

# 天気情報を取得
weather_data = get_weather(api_key, city)

if weather_data:
    print("天気情報:", weather_data)
else:
    print("天気情報を取得できませんでした。")

試してみていかがでしたでしょうか。APIは実際に試してみると思ったより簡単なものだと理解できたはずです。APIと初めて聞いた方には難しいと思うからもしれませんが、容易にデータ連携ができるので、色々なAPIサービスを利用してみてください。

APIキーとは

実際にAPIを使うにあたってAPIキーというのが必ず出てきますので説明をしておきます。

APIキー(Application Programming Interface Key)は、API(アプリケーションプログラミングインターフェース)を利用する際に必要な認証情報の一種です。APIキーは、APIプロバイダーが提供するサービスにアクセスする際に、クライアントが自分自身を識別するために使用されます。

一般的に、APIキーは開発者がサービスを利用するために登録する際に発行されます。このキーは、APIにリクエストを送信する際にHTTPリクエストヘッダーやURLパラメーターの形式で送信され、サービスプロバイダーがクライアントを識別し、適切なアクセス権を与えるのに役立ちます。

APIキーを使用することで、APIプロバイダーはリクエストの送信元を識別し、利用制限を設定したり、セキュリティを強化したりすることができます。また、APIキーを適切に管理することで、不正利用や悪意のある攻撃からサービスを保護することも可能です。

APIのメリット

APIを利用するメリットは以下の4つです。

  1. 開発の効率化/コスト削減
  2. セキュリティ向上
  3. ユーザビリティ向上
  4. システム変更による影響が小さい

それぞれ解説していきます。

APIのメリット①:開発の効率化/コスト削減

APIで外部サービスの情報や機能を利用することで、0から開発する必要がありません。これはエンジニアにとっては最大のメリットと言えます。

なぜなら全てのコードを作成するとなると、工数が大幅に増えますし、その分人も必要になってきます。そのため、必要な機能を外部APIを利用することによって、複数のリソースを組み合わせられるので、効率的な開発が行えます。

APIを使うことで、開発コストや運用コストなどを大幅に減らすことも可能になり、利用する側も多くの恩恵を受けます。

APIのメリット②:セキュリティ向上

自社で認証機能を作ることもできますが、セキュリティ面が不安になる場合も考えられます。全世界では日々ハッキングの脅威がありますし、実際に大企業でも情報漏洩が起きています。

そこで他社の強固なセキュリティが備わっているAPIを利用すれば、該当箇所のセキュリティを向上させることが可能ですし、ハッキングなどの脅威の不安も軽減されます。

APIのメリット③:ユーザビリティ向上

ユーザビリティは、顧客満足とも言います。
APIの利用によるセキュリティの向上や、価格を抑えたサービス提供によって、ユーザーからの信頼や安心を得ることが可能です。

ユーザビリティ向上の良い例として「Amazon Pay」があります。
AmazonPayは、Amazonにログインするだけで、ユーザーの住所やクレジットカード情報などの入力が不要になるという仕組みを実現し、サービス提供側のユーザビリティ向上に貢献しました。
また、ユーザー側の入力の手間を省くだけでなく、企業側の個人情報の取扱を避けることも可能にしました。

私も実際にECで買い物をするときに、わざわざその企業のアカウントを作る必要もないですし、クレジットカード情報をそのECサイト側(企業側)に渡したくないという思いがあり、Amazon Payを選択して支払ったこともあります。

このように、APIを利用することでユーザビリティの向上も期待できます。

どのAPIを使うかはシステム設計者や会社が判断することになりますが、しっかりとセキュリティ基準に満たしているかがとても重要です。セキュリティ対策をしていないとAPI元がハッキングされて、情報漏洩ということにもなりますので、ISOといったセキュリティの保証がされていることを確認した上でAPIを利用することをオススメします。

APIのメリット④:システム変更による影響が小さい

APIを利用することで、システム変更による影響を抑えられます。
例えば、自社で機能を多く実装していると、情報を取得しているシステムの仕様変更が発生するたびに、コードの書き換えなどの対応が発生してしまいます。

そこでAPIを利用していれば、必要箇所だけの修正で済むため、仕様変更による影響を小さくすることができます。

これはエンジニアなどの開発者からするととても便利ですし、自分の仕事が減るという点ではかなりのメリットです。コードを書くという作業は大変なのですが、修正するのもかなり大変で、どこに影響を与えるのかを把握するのが難しい場面もあるからです。

そのため色々な部分をAPIの外部機能に頼ることはとても重要です。

APIのデメリット

APIのメリットについてはご紹介してきましたが、 APIにはデメリットも以下2点があります。

  1. APIサービス提供者の不具合による影響
  2. APIサービス提供者の料金変更によるコスト圧迫

APIのデメリット①:APIサービス提供者の不具合による影響

APIサービス提供者側でサーバーなどに不具合が出た場合、自社サービスにも影響ができる場合があります。API提供者も常に安定しているというわけではありません。

API提供者も別のAPIサービスを利用していることもあるため、そちらが原因で不具合が発生する場合もあります。また機能改修をするときにも障害が発生することはありますし、それによってAPI利用者側も大きな影響が出てしまうこともあるため、十分に注意してください。

また、APIサービス者側もいきなりAPIの提供を終了することもあります。例えば、APIサービスが儲からない、セキュリティ面での担保が難しくなった、そもそもAPIを外部に提供するのをやめたと色々な理由が考えられますが、必ずしもAPIがずっと提供されるわけではないという点を頭に入れて、そのAPIサービスを利用するかを考えましょう。

API利用者よりもAPI提供者の方がパワーバランスが強いこともあり、提供者がやめるといったら従わざるを得なく、確実にAPIの利用者側の改修が発生します。

APIのデメリット②:APIサービス提供者の料金変更によるコスト圧迫

有料のAPIサービスを利用している場合は、APIサービスの値上げによるコスト圧迫には注意が必要です。最初は利用者を増やす・認知拡大のためにAPI利用料金を安く提供している企業も多いですが、API利用者が増えてくると値上げをすることがよくあります。

また認知度が高く、利用者も多いAPIには海外サービスがよくあります。その場合は、為替差に応じて値上げがあることも想定しておくと良いでしょう。

値上げしても利用するメリットが大きい場合は、値上げを受け入れるという対応も必要になります。コスト吸収ができない場合はAPI利用をやめる必要があるため、代替できるAPIが他にもないかや、API利用していた箇所を0から機能開発するコストと天秤で考えて最終決断をすることも大切です。

APIを利用する上での注意点

APIを利用する際には、いくつかの重要な注意点に留意することが不可欠です。APIはアプリケーション間の連携やデータの取得に不可欠な手段となっていますが、その利用には慎重な取り扱いが求められます。

特に情報漏洩になりやすくなるので、APIキーやアクセストークンなどの情報をブログ記事に掲載してしまったりしないようにしてください。

利用規約の遵守

APIを利用する際には、提供された利用規約を十分理解し、遵守することが重要です。利用規約には、制限、利用条件、および使用に関する指針が含まれています。これにより、サービスの円滑な利用を確保し、問題を回避できます。

セキュリティの確保

APIの利用においてセキュリティを確保することは不可欠です。APIキー、トークンなどの認証情報を適切に保護し、不正アクセスからデータを守ります。また、HTTPSなどのセキュアな通信プロトコルを使用してデータの送受信を行うことで、データ漏洩や改ざんを防止します。

利用量と料金体系の把握

APIの利用量には制限が設けられている場合があります。APIプロバイダーの料金体系を理解し、必要なプランを選択することが重要です。利用量が制限を超えた場合、サービスが一時停止される可能性があるため、適切なプランを選択し、料金を支払うことが求められます。

ドキュメントとアップデートの確認

APIの利用にあたっては、常に最新のドキュメントやアップデートを確認し、APIの仕様変更やアップデートに迅速に対応することが必要です。これにより、アプリケーションやサービスの安定性や機能性を確保できます。

APIエコノミーとは

 

APIエコノミーとは、APIを公開することで様々なデータがつながっていき、API提供者と利用者の両方にメリットが生みでる経済圏を指します。

APIが出た当初はウェブAPI(Web API)という呼び名が一般的だったのですが、オープンイノベーションやAPIが主流になってきた近年では「APIエコノミー」という呼び名が定着してきました。

そんなAPIエコノミーの代表例として、オンライン決済やSNSアカウントでのログインなどがあります。1つ具体例をあげると配車サービスのUberがあります。

Uberは地図情報はGoogleマップを利用しており、運転手と利用者のコミュニケーションにはTwilio(トゥイリオ)、決済手段にはBraintree(ブレインツリー)とそれぞれのAPIサービスを利用しています。このように外部のAPIを上手に使って、新しいサービスを提供していていますし、外部APIを利用することでユーザビリティの向上にもつながり、ユーザー側にもメリットがあるため、これら全てをAPIエコノミーといえます。

APIは海外サービスが多いことから日本企業でも使用しているAPIといえば、海外サービスが多く目立ちます。しかし、オープンイノベーションの波が日本企業にも波及してきており、セキュリティに厳しい金融機関でもAPIを公開するなど動きが活発になっています。

企業に属していなくても、外部APIを利用することはできますし、試しにちょっと使ってみるということであれば、Twitterはおすすめです。例えばTwitterのAPIを利用して、GASと組み合わせることで自動投稿をすることも可能です。

これからもAPIエコノミーは注目され続け、APIエコノミーが当たり前の世の中になってくることも考えられます。

APIとは?のまとめ

APIについてわかりやすく説明しましたがご理解いただけましたでしょうか?

APIの種類には「パブリックAPI、パートナーAPI、プライベートAPI、コンポジットAPI」の4種類あります。またRESTの4原則に基いてAPIは提供されていますし、利用するメリットは多くある反面、API提供者側に左右されてしまうといったデメリットもありました。

APIエコノミーはオープンイノベーションでデータを連携して、win-winの関係が作られる事で、多くのメリットと経済を生み出します。

APIを使ったことがない方は、これを機会にAPIを触ってみてください。きっとAPIの凄さに驚きますし、APIの沼にハマっていくことでしょう。

コメント

タイトルとURLをコピーしました