【Python】APIリクエストをする方法

APIは現代のプログラミングにおいて欠かせない要素であり、Pythonを使ってAPIを呼び出す方法を学ぶことは非常に重要です。

この記事では、APIの概要や利用メリットから、PythonでAPIを呼び出す方法、エラーハンドリング、そして実践例までをわかりやすく解説していきます。

目次から探す

APIとは

API(Application Programming Interface)とは、アプリケーションやシステム間でデータや機能を共有・連携するためのインターフェースです。

APIを利用することで、異なるプログラムやサービスが互いにやり取りを行い、機能を組み合わせて新しいアプリケーションを開発することができます。

APIの概要

APIは、プログラムやサービスが提供する機能やデータを、他のプログラムやサービスが利用できるようにする仕組みです。

例えば、天気予報のAPIを利用すれば、自分のアプリケーションで天気情報を取得して表示することができます。

APIを利用することで、自分で天気情報を収集・解析する必要がなく、簡単にアプリケーションに組み込むことができます。

APIは、通常、HTTPプロトコルを利用してデータのやり取りを行います。

HTTPプロトコルは、インターネット上でデータをやり取りするための標準的なプロトコルであり、Webブラウザやスマートフォンアプリなど、さまざまな環境で利用されています。

APIを利用する際には、APIの仕様に従ってリクエストを送信し、レスポンスを受け取ることでデータや機能を利用できます。

APIの利用メリット

APIを利用することによるメリットは以下の通りです。

機能の再利用

既存の機能やデータをAPIを通じて利用することで、同じ機能を自分で開発する手間を省くことができます。

これにより、開発時間やコストを削減できます。

柔軟な開発

APIを利用することで、異なるプログラムやサービスが連携し、新しい機能やサービスを開発することが容易になります。

これにより、柔軟な開発が可能となり、イノベーションを促進します。

保守性の向上

APIを利用することで、システム間の依存関係を疎結合にすることができます。

これにより、システムの保守性が向上し、変更や拡張が容易になります。

標準化

APIは、データや機能のやり取りに標準化されたインターフェースを提供します。

これにより、異なるシステム間でのデータのやり取りが容易になり、互換性の問題を軽減できます。

以上のように、APIを利用することで、開発効率の向上やシステムの保守性の向上など、さまざまなメリットがあります。

Pythonを使ってAPIを呼び出す方法を学ぶことで、これらのメリットを活用し、効率的なプログラム開発が可能となります。

PythonでAPIを呼び出す方法

PythonでAPIを呼び出す方法はいくつかありますが、ここでは主にGETリクエストとPOSTリクエストを使ったAPI呼び出しについて解説します。

また、それぞれのリクエストについて、requestsライブラリとurllibライブラリを使った方法を紹介します。

GETリクエストを使ったAPI呼び出し

GETリクエストは、APIから情報を取得するために使用されるHTTPリクエストの一種です。

requestsライブラリを使ったGETリクエスト

requestsライブラリは、PythonでHTTPリクエストを簡単に扱うことができるライブラリです。

まずはrequestsライブラリをインストールしましょう。


pip install requests

次に、以下のサンプルコードを参考にして、GETリクエストを行ってみましょう。


import requests
url = "https://af-e.net/"
response = requests.get(url)
print(response.text)

このサイトのトップページのHTMLを取得できたはずです。

urllibライブラリを使ったGETリクエスト

urllibライブラリは、Pythonの標準ライブラリで、HTTPリクエストを扱うことができます。

以下のサンプルコードを参考にして、GETリクエストを行ってみましょう。


import urllib.request
url = "https://af-e.net/"
response = urllib.request.urlopen(url)
print(response.read().decode('utf-8'))

POSTリクエストを使ったAPI呼び出し

POSTリクエストは、APIにデータを送信するために使用されるHTTPリクエストの一種です。

requestsライブラリを使ったPOSTリクエスト

requestsライブラリを使ってPOSTリクエストを行う方法は以下の通りです。


import requests
url = "https://example.com/api"
data = {"key": "value"}
response = requests.post(url, data=data)
print(response.text)

urllibライブラリを使ったPOSTリクエスト

urllibライブラリを使ってPOSTリクエストを行う方法は以下の通りです。


import urllib.request
import urllib.parse
url = "https://example.com/api"
data = {"key": "value"}
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url, data=data, method='POST')
response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))

レスポンスデータの処理

APIからのレスポンスデータは、主にJSON形式やXML形式で返されることが多いです。

ここでは、それぞれのデータ形式のパース方法を紹介します。

JSONデータのパース

PythonでJSONデータを扱うには、標準ライブラリのjsonモジュールを使用します。

以下のサンプルコードを参考にして、JSONデータをパースしてみましょう。


import json
json_data = '{"key": "value"}'
data = json.loads(json_data)
print(data["key"])  # 出力: value

XMLデータのパース

PythonでXMLデータを扱うには、標準ライブラリのxml.etree.ElementTreeモジュールを使用します。

以下のサンプルコードを参考にして、XMLデータをパースしてみましょう。


import xml.etree.ElementTree as ET
xml_data = "<root><key>value</key></root>"
root = ET.fromstring(xml_data)
key = root.find("key")
print(key.text)  # 出力: value
1 2 3

目次から探す