ホームページ >バックエンド開発 >Python チュートリアル >Flask と Python を使用して RESTful API を作成する方法
RESTful API は最新の開発に不可欠であり、さまざまなシステムが効率的かつスケーラブルな方法で通信できるようにします。 Python は、Flask フレームワークを使用して、API を作成するためのシンプルかつ強力なアプローチを提供します。このガイドでは、Flask を使用して RESTful API を作成する方法を説明し、基礎から認証、HTTP クライアントでの使用まですべてをカバーします。
コードを始める前に、RESTful API とは何かを理解することが重要です。 API (アプリケーション プログラミング インターフェイス) は、あるソフトウェアが別のソフトウェアと通信できるようにする一連のルールです。 REST (Representational State Transfer) スタイルは、API が従う必要がある一連の原則を定義します。
ここで、ユーザーのリストを管理する単純な API を作成します。 API を使用すると、ユーザーを追加、編集、表示、削除できます。
まず、Flask がインストールされていることを確認してください。そうでない場合は、pip:
を使用してインストールできます。
pip install Flask
私たちのプロジェクトは次の構造になります:
/api_flask │ ├── app.py └── requirements.txt
app.py ファイルで、必要なライブラリをインポートし、Flask アプリケーションを構成することから始めます。
from flask import Flask, jsonify, request app = Flask(__name__) # Dados simulados users = [ {'id': 1, 'name': 'Alice', 'email': 'alice@example.com'}, {'id': 2, 'name': 'Bob', 'email': 'bob@example.com'} ]
次に、表示、追加、更新、および 削除 ユーザー用のエンドポイントを作成しましょう。
GET メソッドを使用してすべてのユーザーをリストします。
@app.route('/users', methods=['GET']) def get_users(): return jsonify(users), 200
ユーザー ID を指定して GET メソッドを使用して、特定のユーザーの詳細を取得します。
@app.route('/users/<int:user_id>', methods=['GET']) def get_user(user_id): user = next((user for user in users if user['id'] == user_id), None) if user: return jsonify(user), 200 else: return jsonify({'message': 'User not found'}), 404
POST メソッドは、新しいユーザーを追加するために使用されます。クライアントはデータを JSON 形式で送信します。
@app.route('/users', methods=['POST']) def create_user(): data = request.get_json() new_user = { 'id': len(users) + 1, 'name': data['name'], 'email': data['email'] } users.append(new_user) return jsonify(new_user), 201
ここでは、PUT メソッドを使用して既存のユーザーのデータを更新します。
@app.route('/users/<int:user_id>', methods=['PUT']) def update_user(user_id): data = request.get_json() user = next((user for user in users if user['id'] == user_id), None) if user: user['name'] = data['name'] user['email'] = data['email'] return jsonify(user), 200 else: return jsonify({'message': 'User not found'}), 404
ユーザーを削除するには、DELETE メソッドを使用します。
@app.route('/users/<int:user_id>', methods=['DELETE']) def delete_user(user_id): global users users = [user for user in users if user['id'] != user_id] return jsonify({'message': 'User deleted'}), 200
さあ、アプリケーションを実行してください:
if __name__ == '__main__': app.run(debug=True)
app.py ファイルを実行すると、API が http://127.0.0.1:5000/users で利用可能になります。
API にセキュリティ層を追加するには、JWT (JSON Web Token) を使用できます。 JWT を使用すると、認証されたユーザーのみが特定のエンドポイントにアクセスできるようにすることができます。
必要な拡張機能をインストールします:
pip install Flask-JWT-Extended
app.py ファイルを更新して JWT 認証を含めます:
from flask_jwt_extended import JWTManager, create_access_token, jwt_required app.config['JWT_SECRET_KEY'] = 'your-secret-key' # Troque pela sua chave secreta jwt = JWTManager(app) # Login para obter o token @app.route('/login', methods=['POST']) def login(): data = request.get_json() if data['username'] == 'admin' and data['password'] == 'admin': access_token = create_access_token(identity={'username': 'admin'}) return jsonify(access_token=access_token), 200 else: return jsonify({'message': 'Invalid credentials'}), 401 # Exemplo de endpoint protegido @app.route('/protected', methods=['GET']) @jwt_required() def protected(): return jsonify({'message': 'Access granted to protected endpoint'}), 200
/protected エンドポイントにアクセスするときに、ユーザーを認証するためにリクエスト ヘッダーで JWT トークンを送信する必要があります。
API を利用するには、Postman などのツール、または Python の requests などのライブラリを使用できます。
リクエストを使用して API を使用する方法の例:
import requests # Consumindo o endpoint de listagem de usuários response = requests.get('http://127.0.0.1:5000/users') print(response.json())
Flask を使用した RESTful API の作成は簡単かつ柔軟です。 Flask は、認証、エラー処理、その他のセキュリティ層などの機能を含めるように拡張できる最小限のフレームワークを提供します。 REST の原則と優れた開発慣行に従うことで、Python を使用して効率的でスケーラブルな API を構築できます。
Flask を使用して独自の RESTful API を構築し、ニーズや要件に応じてカスタマイズできるようになりました。
以上がFlask と Python を使用して RESTful API を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。