Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

PythonでAPIを呼び出すサンプルプログラムをご紹介

投稿日:2022年4月2日 更新日:

 

<目次>

(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:事前準備

事前準備として、APIを呼び出すために必要な「request」ライブラリを下記のpipコマンドでインストールします。
> pip install requests --users
(図111)

ちなみに「–users」はpipによるインストールをユーザーのホームディレクトリに対して行うように指示するオプションです。通常pipによるインストールは、システムディレクトリ(例:/usr/local/lib/python3.9)に対して実施しますが、これには「管理者権限」が必要となります。

 
「–users」を付与する事で、そういった管理者権限を必要としない、ユーザー自身に閉じたインストールを実施できます。

(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>
(図112)

(1-4) STEP3(任意):疎通②(Basic認証ありのAPI呼び出し)

次にBasic認証がある場合のAPI呼び出しの例をご紹介します。
 
Basic認証は、いわゆる「ユーザーID/パスワード」で認証を行う方式ですが、この「ユーザーID/パスワード」の情報はHTTPリクエストのヘッダーに乗せて送る形になります。
 
先程のプログラムと比較して、getメソッドの引数が追加になっています(ID/Passwordが追加)
 
(構文)ポイント
    # 先程と異なり、第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()
(図113)Basic認証ありのサンプル

(※注)
上記プログラムとは別に、同じ階層に環境変数を定義する用の「.env」ファイルを用意して、環境変数をそのファイルに定義する必要があります。また、それをロードするために「dotenv」ライブラリをpipでインストールする必要もあります。
 
(例)「.env」の記述例
USER_ID=XXXXXXX
PASSWORD=XXXXXX

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

pyenvの使い方(基礎編)をご紹介

  <目次> (1) pyenvの使い方(基礎編)をご紹介  (1-1) STEP1:インストール系のコマンド  (1-2) STEP2:バージョンの適用/切り替え系のコマンド  (1-3) …

CondaHTTPError: HTTP 000 CONNECTION FAILED for url XXXXエラーの対処方法

  <目次> (1) CondaHTTPError: HTTP 000 CONNECTION FAILED for url XXXXエラーの対処方法  (1-1) 事象概要とエラーメッセージ …

Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について

  <目次> (1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処 …

Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)

  <目次> (1) Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)  (1-0) やりたいこと  (1-1) STEP1:Slackボットの開発(所要時間:60分)  ( …

Bing AIのAPIを疎通(HelloWorld)

  <目次> (1) Bing AIのAPIを疎通(HelloWorld)  やりたいこと/概要  前提条件  STEP1:Bing Web Search APIにサインアップ  STEP2 …

  • English (United States)
  • 日本語
Top