【Python】第8章第5回:REST APIの作成と使用
本記事では、REST APIの基礎知識とFlaskを用いた簡単なREST APIの作成方法を学びます。データのやり取りを効率化し、柔軟なWebアプリケーション開発を実現しましょう。
0. 記事の概要
この記事を読むメリット
- REST APIの基礎を理解:APIがどのようにデータをやり取りするのか学べます。
- PythonでAPIを構築:Flaskを使った簡単なAPIの作成方法を習得できます。
- API活用の幅を広げる:外部サービスと連携したアプリケーションを作成できるようになります。
この記事で学べること
- REST APIの基本概念
- Flaskを使ったAPIの作成手順
- APIを活用したデータのやり取り方法
1. REST APIの基礎知識
1.1 REST APIとは?
REST API(Representational State Transfer Application Programming Interface)は、Webサービスでデータをやり取りするための仕組みです。主な特徴は以下の通りです。
- ステートレス: 各リクエストは独立して処理される。
- リソースベース: URLがリソース(データ)を表現する。
- HTTPメソッド: GET、POST、PUT、DELETEなどを使用。
1.2 HTTPメソッドの役割
主なHTTPメソッドとその用途は以下の通りです。
HTTPメソッド | 用途 |
---|---|
GET | データの取得 |
POST | 新しいデータの作成 |
PUT | 既存データの更新 |
DELETE | データの削除 |
2. Flaskで簡単なREST APIを作成
2.1 コード例: シンプルなAPI
# Flaskを使った簡単なREST API
from flask import Flask, jsonify, request
app = Flask(__name__)
# サンプルデータ
data = [
{"id": 1, "name": "Apple"},
{"id": 2, "name": "Banana"}
]
@app.route("/items", methods=["GET"])
def get_items():
return jsonify(data)
@app.route("/items", methods=["POST"])
def add_item():
new_item = request.get_json()
data.append(new_item)
return jsonify(new_item), 201
if __name__ == "__main__":
app.run(debug=True)
動作解説
- @app.route: エンドポイントを定義。
- GET: サンプルデータを返します。
- POST: クライアントから送信されたデータをサーバーに追加します。
3. APIのテスト方法
3.1 Postmanを使ったテスト
Postmanは、APIのリクエストを簡単に送信できるツールです。以下の手順でテストを行います。
- Postmanをインストールし起動する。
- GETリクエストを作成してデータを取得する。
- POSTリクエストを送信して新しいデータを追加する。
4. 練習問題
以下の課題に挑戦してみましょう。
- PUTメソッドを使って既存データを更新するエンドポイントを追加してください。
- DELETEメソッドを実装し、指定したIDのデータを削除してください。
- エラーハンドリングを追加して、無効なリクエストを処理してください。
5. 練習問題の解答と解説
問1の解答例
# PUTメソッドの実装
@app.route("/items/<int:item_id>", methods=["PUT"])
def update_item(item_id):
for item in data:
if item["id"] == item_id:
item.update(request.get_json())
return jsonify(item)
return "Item not found", 404
問2の解答例
# DELETEメソッドの実装
@app.route("/items/<int:item_id>", methods=["DELETE"])
def delete_item(item_id):
global data
data = [item for item in data if item["id"] != item_id]
return "Item deleted", 200
6. まとめ
本記事では、REST APIの基礎知識とFlaskを使った簡単なAPIの作成方法を学びました。次は、APIの認証やセキュリティを学び、より実践的なAPI開発に挑戦してみましょう!