はじめに
前回の記事では、データベースの操作とセキュリティについて学びました。今回は、APIの作成とデータの公開について取り上げます。
1. APIとは
API(Application Programming Interface)は、アプリケーション間で情報をやり取りするためのインターフェースです。Web APIは、HTTPプロトコルを通じてデータを公開する仕組みです。
2. Flaskを使ったAPIの作成
# Flaskを使ったAPIの作成
from flask import Flask, jsonify, request
app = Flask(__name__)
# サンプルデータ
data = [
{"id": 1, "name": "Alice", "age": 25},
{"id": 2, "name": "Bob", "age": 30},
]
# GETリクエストに対するAPIエンドポイント
@app.route('/api/users', methods=['GET'])
def get_users():
return jsonify(data)
# POSTリクエストに対するAPIエンドポイント
@app.route('/api/users', methods=['POST'])
def create_user():
new_user = {
"id": len(data) + 1,
"name": request.json['name'],
"age": request.json['age']
}
data.append(new_user)
return jsonify(new_user)
if __name__ == '__main__':
app.run()
上記のコードでは、/api/users
エンドポイントに対してGETとPOSTリクエストを処理するAPIを作成しています。GETリクエストでは登録されているユーザーの一覧をJSON形式で返し、POSTリクエストでは新しいユーザーを追加します。
3. データの公開
3.1 CORS対応
Web APIを別ドメインから利用する場合、ブラウザの同一オリジンポリシーにより制限されます。CORS(Cross-Origin Resource Sharing)を設定することで、別ドメインからのアクセスを許可できます。
# Flask-CORSのインストール
pip install flask-cors
# Flask-CORSを使ったCORS対応
from flask import Flask, jsonify, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# APIの定義(省略)
4. HTTPSの導入
4.1 SSL/TLS証明書の取得
APIをHTTPSで公開する場合、SSL/TLS証明書を取得してサーバーにインストールする必要があります。無料の証明書を提供しているLet’s Encryptなどが利用できます。
4.2 FlaskでHTTPSを有効化
証明書をインストールしたWebサーバー(例:Nginx)の前段にFlaskアプリケーションを配置し、HTTPSを有効化します。
# FlaskでHTTPSを有効化
if __name__ == '__main__':
app.run(ssl_context='adhoc', host='0.0.0.0', port=443)
まとめ
APIの作成とデータの公開について学びました。APIを利用することで、他のアプリケーションやサービスとデータを連携することが可能になります。データの公開に際しては、セキュリティ対策とHTTPSの導入を忘れずに行うことが重要です。次回はテストとデバッグについて詳しく解説しますので、お楽しみに!