ホームページ > バックエンド開発 > Python チュートリアル > Flask と Python を使用して RESTful API を作成する方法

Flask と Python を使用して RESTful API を作成する方法

Mary-Kate Olsen
リリース: 2024-10-16 11:38:29
オリジナル
261 人が閲覧しました

Como Criar APIs RESTful com Flask e Python

RESTful API は最新の開発に不可欠であり、さまざまなシステムが効率的かつスケーラブルな方法で通信できるようにします。 Python は、Flask フレームワークを使用して、API を作成するためのシンプルかつ強力なアプローチを提供します。このガイドでは、Flask を使用して RESTful API を作成する方法を説明し、基礎から認証、HTTP クライアントでの使用まですべてをカバーします。

RESTful APIとは何ですか?

コードを始める前に、RESTful API とは何かを理解することが重要です。 API (アプリケーション プログラミング インターフェイス) は、あるソフトウェアが別のソフトウェアと通信できるようにする一連のルールです。 REST (Representational State Transfer) スタイルは、API が従う必要がある一連の原則を定義します。

  • クライアント-サーバー: クライアント (API を使用する) とサーバー (データを提供する) の間の分離。
  • ステートレス: クライアントによって行われる各リクエストには、サーバーが処理するために必要なすべての情報が含まれている必要があります。
  • キャッシュ可能: API 応答をキャッシュしてパフォーマンスを向上させることができます。
  • 統一インターフェイス: クライアントとサーバー間の通信は、GET、POST、PUT、DELETE などの HTTP メソッドを使用して、標準化された方法で実行する必要があります。

Flask を使用した RESTful API の作成

ここで、ユーザーのリストを管理する単純な API を作成します。 API を使用すると、ユーザーを追加、編集、表示、削除できます。

1. Flaskのインストール

まず、Flask がインストールされていることを確認してください。そうでない場合は、pip:
を使用してインストールできます。

pip install Flask
ログイン後にコピー

2. プロジェクトの構造

私たちのプロジェクトは次の構造になります:

/api_flask
│
├── app.py
└── requirements.txt
ログイン後にコピー

3. フラスコの構成

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'}
]
ログイン後にコピー

4. エンドポイントの作成

次に、表示追加更新、および 削除 ユーザー用のエンドポイントを作成しましょう。

4.1.ユーザーをリストするためのエンドポイント

GET メソッドを使用してすべてのユーザーをリストします。

@app.route('/users', methods=['GET'])
def get_users():
    return jsonify(users), 200
ログイン後にコピー

4.2.特定のユーザーを取得するためのエンドポイント

ユーザー 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
ログイン後にコピー

4.3.新しいユーザーを作成するためのエンドポイント

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
ログイン後にコピー

4.4.ユーザーを更新するためのエンドポイント

ここでは、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
ログイン後にコピー

4.5.ユーザーを削除するエンドポイント

ユーザーを削除するには、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
ログイン後にコピー

5. APIの実行

さあ、アプリケーションを実行してください:

if __name__ == '__main__':
    app.run(debug=True)
ログイン後にコピー

app.py ファイルを実行すると、API が http://127.0.0.1:5000/users で利用可能になります。

6. Flaskによる認証

API にセキュリティ層を追加するには、JWT (JSON Web Token) を使用できます。 JWT を使用すると、認証されたユーザーのみが特定のエンドポイントにアクセスできるようにすることができます。

6.1. Flask-JWT-Extended のインストール

必要な拡張機能をインストールします:

pip install Flask-JWT-Extended
ログイン後にコピー

6.2. JWTの構成

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 トークンを送信する必要があります。

7. HTTP クライアントでの API の使用

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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート