TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

APIとは? 仕組みを分かり易く

APIとは?仕組み・種類・活用方法をわかりやすく解説

1. はじめに

APIApplication Programming Interface とは、異なるソフトウェアやシステム同士が通信するための仕組み です。
例えば、天気予報アプリが気象データを取得する際や、SNSのログイン機能で他のサービスのアカウントを利用する際APIが使われています。

本記事では、APIの基本的な仕組み、種類、活用例、実際の使い方 について解説します。


2. APIの基本

2.1. APIの役割

APIは、アプリケーション同士の橋渡しをする役割 を持ちます。

例えば:

  1. ユーザーがアプリで「天気情報」を検索
  2. アプリがAPIを通じて天気データを取得
  3. 取得したデータを画面に表示

このように、APIを利用することで、アプリは外部のデータや機能を簡単に活用できる ようになります。


3. APIの種類

APIには、大きく分けて以下の種類があります。

3.1. Web API

📌 Web APIプロトコル

プロトコル 説明
REST API 一般的なWeb API。シンプルで使いやすい
SOAP API 高度なセキュリティが必要な企業向け
GraphQL 必要なデータだけを取得できる新しいAPI

3.2. OS API

  • WindowsmacOSLinuxなどのOSが提供するAPI
  • 例:ファイル操作、ネットワーク通信、ハードウェア制御

3.3. ライブラリAPI


4. APIの活用例

APIは、さまざまな場面で活用されています。

活用例 APIの例
天気情報アプリ OpenWeather API
Googleマップ連携 Google Maps API
SNSログイン機能 Facebook / Google OAuth API
オンライン決済 PayPal API、Stripe API
AI・機械学習 OpenAI API(ChatGPT)、Google Vision API

5. 実際にAPIを使ってみる(REST APIの例)

5.1. APIリクエストの基本

APIを利用するには、HTTPリクエス を送ります。

📌 HTTPリクエストの種類

メソッド 用途
GET データの取得
POST データの送信・登録
PUT データの更新
DELETE データの削除

5.2. PythonAPIを使う

以下は、requests ライブラリを使って、OpenWeather API から天気情報を取得する例です。

import requests

api_key = "YOUR_API_KEY"
city = "Tokyo"
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"

response = requests.get(url)
data = response.json()

print(f"東京の天気: {data['weather'][0]['description']}")

5.3. curlコマンドでAPIリクエス

ターミナルで以下を実行すると、APIデータが取得できます。

curl -X GET "http://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY"

6. APIのセキュリティとベストプラクティス

APIを安全に利用するためには、以下のポイントが重要です。

6.1. APIキーの管理

import os
api_key = os.getenv("API_KEY")

6.2. レート制限の考慮

  • APIは一定回数以上のリクエストを制限 することが多い
  • 例:OpenWeather API無料プランで1分間に60回まで

6.3. HTTPSを使用

  • API通信は必ずHTTPSを利用し、暗号化を確保

7. まとめ

項目 内容
APIとは? ソフトウェア同士をつなぐ仕組み
APIの種類 Web API、OS API、ライブラリAPI
代表的なAPI Google Maps API、OpenWeather API
APIの活用例 天気アプリ、SNSログイン、オンライン決済
APIの使い方 HTTPリクエスト(GET, POST, PUT, DELETE)

APIを活用することで、さまざまな機能を簡単にアプリやシステムに統合できます
APIの基本を理解し、開発に活かしていきましょう!