1p
トップ > 【プログラム事例】API連携とは?わかりやすく

【プログラム事例】API連携とは?わかりやすく

はじめに

このサイトでは「APIとは何か」をやさしく解説し、プログラミング初心者でも理解できるように、OpenWeather APIを使った天気情報取得の流れと実例を紹介します。実際のJavaScriptコードを使って、東京の気温や湿度をリアルタイムで表示。JavaScript入門にも最適なシンプル構成で、API連携の基本を実践的に学べる内容です。

目次

  1. APIとは何か?
  2. APIを使ったプログラムの基本的な流れ
  3. サンプルコード
  4. APIキーの使い方に関する注意点
  5. 姉妹サイト

APIとは何か?

API(Application Programming Interface)とは、ソフトウェア同士が機能やデータをやり取りするための仕組みのことです。

プログラムにおけるAPIの役割

プログラムのAPIは、他のプログラムやサービスと連携するための「入り口」のようなもので、開発者はそのAPIを使って、外部のサービスを自分のアプリに組み込むことができます。

たとえば、こんなときに使われます:
APIの利点
まとめ

APIは、ソフトウェア同士の会話を可能にする「共通言語」のようなもので、現代のプログラミングにおいて非常に重要な役割を果たしています。

APIを使ったプログラムの基本的な流れ

APIを利用する際の一般的なプログラムの流れは、以下のようになります。

  1. 1. APIキーの取得(必要な場合)
    サービスによっては、利用前にAPIキーという認証用の文字列を取得する必要があります。
  2. 2. リクエストの送信
    APIにアクセスするための「リクエスト(要求)」を送信します。通常はHTTP(GETやPOSTなど)を使います。
  3. 3. レスポンスの受信
    APIから返ってくるデータ(JSON形式が一般的)を受け取ります。
  4. 4. データの解析
    受け取ったJSONデータをプログラムで解析し、必要な情報を取り出します。
  5. 5. 画面に表示/処理に利用
    抽出したデータを画面に表示したり、他の処理に利用します。
簡単な例:天気予報APIを使った流れ
まとめ

APIを使えば、他のサービスと簡単に連携できるため、効率的に機能を拡張できます。特にWebアプリやモバイルアプリでは、APIは欠かせない要素です。

サンプルコード

JavaScript

以下は、OpenWeatherのAPIを使って「東京の天気情報(気温・湿度)」を取得し、HTMLに表示するサンプルコードです。JavaScript(Fetch API)を使ってAPIにアクセスしています。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>天気情報を取得する</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
    }
    .weather {
      background: #f0f8ff;
      padding: 15px;
      border-radius: 10px;
      width: 300px;
    }
  </style>
</head>
<body>
  <h2>東京の現在の天気</h2>
  <div class="weather">
    <p><strong>気温:</strong><span id="temperature">読み込み中...</span> ℃</p>
    <p><strong>湿度:</strong><span id="humidity">読み込み中...</span> %</p>
  </div>

  <script>
    const apiKey = "あなたのAPIキー"; // ←ここを自分のAPIキーに変更!
    const city = "Tokyo";
    const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=ja`;

    fetch(url)
      .then(response => response.json())
      .then(data => {
        const temp = data.main.temp;
        const humidity = data.main.humidity;

        document.getElementById("temperature").textContent = temp;
        document.getElementById("humidity").textContent = humidity;
      })
      .catch(error => {
        console.error("天気情報の取得に失敗しました:", error);
        document.getElementById("temperature").textContent = "取得失敗";
        document.getElementById("humidity").textContent = "取得失敗";
      });
  </script>
</body>
</html>

Python

こちらは、Pythonを使って同じ天気情報を取得するプログラムです。Flaskを使用して、ウェブサーバーを立て、HTMLテンプレートと連携します。APIキーを自分のものに変更して実行してください。

from flask import Flask, render_template
import requests

app = Flask(__name__)

@app.route('/')
def weather():
    api_key = "あなたのAPIキー"  # ←ここを自分のAPIキーに変更!
    city = "Tokyo"
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
    
    try:
        response = requests.get(url)
        data = response.json()
        temperature = data['main']['temp']
        humidity = data['main']['humidity']
    except Exception as e:
        print(f"Error: {e}")
        temperature = "取得失敗"
        humidity = "取得失敗"
    
    return render_template('weather.html', temperature=temperature, humidity=humidity)

if __name__ == '__main__':
    app.run(debug=True)

weather.html ファイルを同じディレクトリの templates フォルダに保存します。内容は次の通りです:

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>天気情報を取得する</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
    }
    .weather {
      background: #f0f8ff;
      padding: 15px;
      border-radius: 10px;
      width: 300px;
    }
  </style>
</head>
<body>
  <h2>東京の現在の天気</h2>
  <div class="weather">
    <p><strong>気温:</strong>{{ temperature }} ℃</p>
    <p><strong>湿度:</strong>{{ humidity }} %</p>
  </div>
</body>
</html>

このコードを実行するには、以下の手順で必要なパッケージをインストールしてください:

pip install flask requests

APIキーの使い方に関する注意点

APIキーの使い方に関する注意点を説明します。セキュリティや管理の観点から、APIキーは適切に保護する必要があります。APIキーをコードに直接埋め込むのは避け、環境変数や設定ファイルを使用する方法が推奨されます。

1. APIキーを別ファイルに保存する方法

APIキーをコード内に直接記載するのではなく、外部の設定ファイルに保存する方法です。

# config.py
API_KEY = "あなたのAPIキー"  # ここにAPIキーを記述

そして、アプリケーションのコードから設定ファイルをインポートして使用します。

# app.py
from flask import Flask, render_template
import requests
import config  # config.pyをインポート

app = Flask(__name__)

@app.route('/')
def weather():
    api_key = config.API_KEY  # 設定ファイルからAPIキーを取得
    city = "Tokyo"
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
    
    try:
        response = requests.get(url)
        data = response.json()
        temperature = data['main']['temp']
        humidity = data['main']['humidity']
    except Exception as e:
        print(f"Error: {e}")
        temperature = "取得失敗"
        humidity = "取得失敗"
    
    return render_template('weather.html', temperature=temperature, humidity=humidity)

if __name__ == '__main__':
    app.run(debug=True)

2. 環境変数を使用する方法

環境変数にAPIキーを設定して、コードからそれを読み取る方法です。

export API_KEY="あなたのAPIキー"

Pythonコードで以下のように取得します。

# app.py
from flask import Flask, render_template
import requests
import os

app = Flask(__name__)

@app.route('/')
def weather():
    api_key = os.getenv('API_KEY')  # 環境変数からAPIキーを取得
    city = "Tokyo"
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
    
    try:
        response = requests.get(url)
        data = response.json()
        temperature = data['main']['temp']
        humidity = data['main']['humidity']
    except Exception as e:
        print(f"Error: {e}")
        temperature = "取得失敗"
        humidity = "取得失敗"
    
    return render_template('weather.html', temperature=temperature, humidity=humidity)

if __name__ == '__main__':
    app.run(debug=True)

3. .envファイルを使用する方法(python-dotenv)

.envファイルを使って環境変数を管理する方法です。

# .env
API_KEY=あなたのAPIキー

Pythonコード内で以下のように読み込みます。

# app.py
from flask import Flask, render_template
import requests
from dotenv import load_dotenv
import os

load_dotenv()  # .env ファイルの内容を読み込む

app = Flask(__name__)

@app.route('/')
def weather():
    api_key = os.getenv('API_KEY')  # .env ファイルからAPIキーを取得
    city = "Tokyo"
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
    
    try:
        response = requests.get(url)
        data = response.json()
        temperature = data['main']['temp']
        humidity = data['main']['humidity']
    except Exception as e:
        print(f"Error: {e}")
        temperature = "取得失敗"
        humidity = "取得失敗"
    
    return render_template('weather.html', temperature=temperature, humidity=humidity)

if __name__ == '__main__':
    app.run(debug=True)

4. APIキーのアクセス制限

APIプロバイダーによっては、APIキーに対してIPアドレス制限やドメイン制限を設定できることがあります。これを利用して、悪用されるリスクを減らしましょう。

姉妹サイト

【プログラム事例】API連携とは?わかりやすく 【API一覧】無料/有料、キーの必要、特徴を解説 【プログラム事例】無料APIで何ができる?面白いアイデア 無料X(Twitter)APIでのプログラミング事例 ChatGPT APIのプログラミング活用方法(無料と有料の違い、OpenAI)

AI使用

このサイトは、一部のコンテンツに生成AIを使用しています。

免責事項・著作権表示

情報が古かったり、間違っていることなどによる損害の責任は負いかねますので、ご了承ください。

Copyright (C) SUZ45. All Rights Reserved.