URLをコピーしました!
スキルアップを始める!

APIとは?異なるシステム間でデータをやり取りするための仕組みについて

API(エーピーアイ)
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

APIとは?

APIとは、Application Programming Interface(アプリケーション・プログラミング・インターフェース)の略で、プログラム同士がデータのやり取りをするための手順や規約を定めたものです。

APIを利用することで、自分で開発したプログラムやサービスを外部に公開し、他の開発者やサービスとの連携を容易にすることができます。

例えば、Google MapsのAPIを利用すれば、自分のサイトにGoogle Mapsを表示することができます。

APIの基本的な仕組み

APIの基本的な仕組みは、以下のようになります。

  • APIの定義
  • リクエストの送信
  • リクエストの受信と処理
  • レスポンスの解析

順番に見ていきます。

APIの定義

APIの定義:APIの仕様や手順、パラメータなどを定義します。

APIの定義としての具体例としては、以下のようなものが挙げられます。

例1: Twitter API

Twitter APIは、Twitterが提供するAPIであり、外部の開発者がTwitterのデータを取得したり、Twitterにデータを投稿したりすることができるようになっています。

Twitter APIの仕様書では、APIのエンドポイント(URL)、パラメータ、レスポンスのフォーマットなどが定義されています。また、APIの利用には認証情報が必要であること、APIの利用制限が設けられていることなども定義されています。

例2: Google Maps API

Google Maps APIは、Googleが提供するAPIであり、開発者が自分のWebサイトやアプリケーションにGoogle Mapsを表示することができるようになっています。

Google Maps APIの仕様書では、APIのエンドポイント、パラメータ、レスポンスのフォーマット、利用制限などが定義されています。また、APIの利用にはAPIキーが必要であること、APIキーには利用制限が設けられていることなども定義されています。

リクエストの送信(OpenWeatherMap API)

リクエストの送信:APIを利用するプログラムから、APIに対してリクエストを送信します。リクエストには、APIのURLやパラメータなどが含まれます。

APIを利用するプログラムからAPIにリクエストを送信する例を示します。

例: OpenWeatherMap APIを用いた天気情報取得

[rml_read_more]

OpenWeatherMap APIは、天気情報を提供するAPIです。以下は、Pythonのrequestsモジュールを用いて、OpenWeatherMap APIに対して天気情報を取得するリクエストを送信する例です。

import requests

api_key = "APIキーをここに入力"

# 天気情報を取得するためのAPIのURL
url = "http://api.openweathermap.org/data/2.5/weather"

# パラメータの設定(ここでは東京の天気を取得するため、qパラメータに"Tokyo,JP"を指定しています)
params = {"q": "Tokyo,JP", "appid": api_key}

# リクエストの送信
response = requests.get(url, params=params)

# レスポンスの取得
data = response.json()

# 天気情報の表示
print("東京の天気:", data["weather"][0]["description"])

この例では、requestsモジュールを用いてOpenWeatherMap APIにGETリクエストを送信しています。リクエストには、APIのURL(http://api.openweathermap.org/data/2.5/weather)とパラメータ(”q”: “Tokyo,JP”, “appid”: api_key)が含まれています。APIキーは、事前に取得したものを変数に格納しています。

APIに対するリクエストには、HTTPメソッド(GET、POST、PUTなど)やヘッダー情報などを含めることができます。API提供者が提供するAPIの仕様書に従い、適切なリクエストを送信することが重要です。

リクエストの受信と処理(GitHub API)

リクエストの受信と処理:APIは、受信したリクエストを処理し、その結果をレスポンスとして返します。レスポンスには、APIが返すデータやステータスコードなどが含まれます。

例: GitHub APIを用いたリポジトリ情報取得

GitHub APIは、GitHub上のリポジトリ情報を提供するAPIです。以下は、Pythonのrequestsモジュールを用いて、GitHub APIに対してリポジトリ情報を取得するリクエストを送信し、レスポンスを受信する例です。

import requests

# リポジトリ情報を取得するためのAPIのURL
url = "https://api.github.com/repos/openai/api"

# リクエストの送信
response = requests.get(url)

# レスポンスの取得
data = response.json()

# リポジトリ情報の表示
print("リポジトリ名:", data["full_name"])
print("説明:", data["description"])
print("最終更新日:", data["updated_at"])

この例では、requestsモジュールを用いてGitHub APIにGETリクエストを送信しています。リクエストには、APIのURL(https://api.github.com/repos/openai/api)が含まれています。APIが返すレスポンスは、JSON形式であり、response.json()を用いて、Pythonのデータ型に変換しています。

レスポンスの解析(OpenWeatherMap API)

レスポンスの解析:APIから受け取ったレスポンスを解析し、必要なデータを取り出します。

例: OpenWeatherMap APIを用いた天気情報取得

OpenWeatherMap APIは、世界中の天気情報を提供するAPIです。以下は、Pythonのrequestsモジュールを用いて、OpenWeatherMap APIに対して天気情報を取得するリクエストを送信し、レスポンスを解析して必要な情報を取り出す例です。

import requests

# 天気情報を取得するためのAPIのURL
url = "http://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=<API_KEY>"

# リクエストの送信
response = requests.get(url)

# レスポンスの解析
data = response.json()
temp = data["main"]["temp"] - 273.15  # ケルビンを摂氏に変換
humidity = data["main"]["humidity"]
weather = data["weather"][0]["main"]

# 天気情報の表示
print("東京の天気:", weather)
print("気温:{:.1f}℃".format(temp))
print("湿度:{}%".format(humidity))

この例では、requestsモジュールを用いてOpenWeatherMap APIにGETリクエストを送信しています。リクエストには、APIのURLとAPIキーが含まれています。APIが返すレスポンスは、JSON形式であり、response.json()を用いて、Pythonのデータ型に変換しています。

レスポンスから必要な情報を取り出すために、Pythonの辞書型を使ってレスポンスの中身を参照しています。例えば、温度はレスポンス中のmain.tempから取得し、摂氏に変換しています。取得した天気情報や気温、湿度などの情報は、必要に応じて加工や出力などの処理を行うことができます。

Web APIについて

APIは、Web APIやデータベースAPIなど、様々な種類があります。それぞれのAPIには、それぞれの仕様や手順がありますが、基本的な仕組みは共通しています。

APIは、一般的にWeb APIと呼ばれる形式で提供されます。Web APIは、HTTPリクエストとHTTPレスポンスを用いて、Web上でのデータのやり取りを行います。

APIを利用する場合、まずAPIの仕様書を読み、APIが提供する機能やパラメータ、レスポンスの形式などを理解する必要があります。その上で、プログラムからAPIにリクエストを送信し、レスポンスを受け取って解析します。

APIは、外部からのアクセスを受け付けるために、APIキーなどの認証情報を要求する場合があります。また、API提供元がアップデートを行った場合には、APIの仕様が変更されることがあります。そのため、APIを利用するプログラム側も定期的に仕様書を確認し、最新の仕様に対応する必要があります。

まとめ

APIは、自分で開発したサービスを外部に公開するためにも利用されます。APIを提供する場合には、APIの仕様を定義し、認証情報やAPIキーの発行、利用制限の設定などを行う必要があります。

APIは、今日のWebサービスにおいて欠かせない技術であり、多くの企業や開発者がAPIを提供・利用しています。

Kindle Unlimited 会員は無料で購読できます
購読はこちら
Kindle Unlimited 会員は無料で購読できます
購読はこちら