<目次>
(1) PythonでAPIを呼び出すサンプルプログラム
(1-1) 構文
(1-2) STEP1:事前準備
(1-3) STEP2:疎通①(最もシンプルなAPI呼び出し)
(1-4) STEP3(任意):疎通②(Basic認証ありのAPI呼び出し)
(1) PythonでAPIを呼び出すサンプルプログラム
本記事では以下の内容をカバーします。
・①PythonでAPIを呼び出すための構文
・②PythonでAPIを呼び出すためのサンプルプログラム(最もシンプルなAPI呼び出し)
・③PythonでAPIを呼び出すためのサンプルプログラム(Basic認証ありのAPI呼び出し)
(1-1) 構文
# API呼び出しに必要なパッケージのimport
import requests
# getメソッドでURLに対してGETリクエストを送る
response = requests.get("[APIのURL]")
(1-2) STEP1:事前準備
> pip install requests --users
ちなみに「–users」はpipによるインストールをユーザーのホームディレクトリに対して行うように指示するオプションです。通常pipによるインストールは、システムディレクトリ(例:/usr/local/lib/python3.9)に対して実施しますが、これには「管理者権限」が必要となります。
(1-3) STEP2:疎通①(最もシンプルなAPI呼び出し)
# API呼び出しに必要なパッケージのimport
import requests
# getメソッドでURLに対してGETリクエストを送る
response = requests.get("https://zipcloud.ibsnet.co.jp/api/search?zipcode=221-0866")
# レスポンスをテキスト形式に変換
result = response.text
# 結果をコンソール出力
print(result)
PS C:\dev\Python\ApiTest> & C:/Python310/python.exe c:/dev/Python/ApiTest/__init__.py
{
"message": null,
"results": [
{
"address1": "神奈川県",
"address2": "横浜市神奈川区",
"address3": "羽沢南",
"kana1": "カナガワケン",
"kana2": "ヨコハマシカナガワク",
"kana3": "ハザワミナミ",
"prefcode": "14",
"zipcode": "2210866"
}
],
"status": 200
}
PS C:\dev\Python\ApiTest>
(1-4) STEP3(任意):疎通②(Basic認証ありのAPI呼び出し)
# 先程と異なり、第2引数でBasic認証に必要な「auth=(user_id,password)」を与えています。
response = requests.get(url, auth=(user_id, password))
import requests
import os
from requests.auth import HTTPBasicAuth
from dotenv import load_dotenv
from pathlib import Path
# このPythonファイルがあるパスを取得
file_path = Path(__file__).parent
# 環境変数用のファイル「.env」のパスを定義
env_path = file_path/'.env'
# 環境変数用のファイル「.env」をロードする
load_dotenv(dotenv_path=env_path)
def main():
# APIのURL
url = '[APIのURL]'
# Basic認証で必要なID/Password
user_id = os.environ['USER_ID']
password = os.environ['PASSWORD']
# getメソッドでURLに対してGETリクエストを送る
# ▲先程と異なり、第2引数でBasic認証に必要な「auth=(user_id,password)」を与えています。
response = requests.get(url, auth=(user_id, password))
# レスポンスの内容をtext形式で取得
result = response.text
# 結果をコンソール出力
print(result)
if __name__ == "__main__":
main()
USER_ID=XXXXXXX PASSWORD=XXXXXX