Rumah > Artikel > pembangunan bahagian belakang > Cara Membuat API RESTful dengan Flask dan Python
API RESTful adalah penting dalam pembangunan moden, membolehkan sistem yang berbeza berkomunikasi dengan cara yang cekap dan berskala. Python, dengan rangka kerja Flasknya, menawarkan pendekatan yang mudah dan berkuasa untuk mencipta API. Dalam panduan ini, kami akan meneroka cara membuat API RESTful menggunakan Flask, meliputi segala-galanya daripada asas kepada pengesahan dan penggunaan dengan klien HTTP.
Sebelum kita mula dengan kod, adalah penting untuk memahami apa itu RESTful API. API (Application Programming Interface) ialah satu set peraturan yang membenarkan satu perisian untuk berkomunikasi dengan yang lain. Gaya REST (Pemindahan Negeri Perwakilan) mentakrifkan satu set prinsip yang mesti dipatuhi oleh API:
Kini kami akan mencipta API mudah yang menguruskan senarai pengguna. API akan membolehkan anda menambah, mengedit, melihat dan memadam pengguna.
Pertama, pastikan anda telah memasang Flask. Jika tidak, anda boleh memasangnya menggunakan pip:
pip install Flask
Projek kami akan mempunyai struktur berikut:
/api_flask │ ├── app.py └── requirements.txt
Dalam fail app.py, kami mulakan dengan mengimport perpustakaan yang diperlukan dan mengkonfigurasi aplikasi Flask kami:
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'} ]
Sekarang, mari buat titik akhir kami untuk lihat, tambah, kemas kini dan padam pengguna.
Kami akan menggunakan kaedah GET untuk menyenaraikan semua pengguna:
@app.route('/users', methods=['GET']) def get_users(): return jsonify(users), 200
Kami akan menggunakan kaedah GET dengan ID pengguna untuk mendapatkan butiran pengguna tertentu:
@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
Kaedah POST akan digunakan untuk menambah pengguna baharu. Pelanggan akan menghantar data dalam format 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
Di sini kami menggunakan kaedah PUT untuk mengemas kini data pengguna sedia ada:
@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
Kami menggunakan kaedah DELETE untuk mengalih keluar pengguna:
@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
Sekarang, jalankan sahaja aplikasi kami:
if __name__ == '__main__': app.run(debug=True)
Menjalankan fail app.py, API kami akan tersedia di http://127.0.0.1:5000/users.
Untuk menambah lapisan keselamatan pada API kami, kami boleh menggunakan JWT (JSON Web Token). Dengan JWT, kami boleh memastikan bahawa hanya pengguna yang disahkan boleh mengakses titik akhir tertentu.
Pasang sambungan yang diperlukan:
pip install Flask-JWT-Extended
Kemas kini fail app.py anda untuk menyertakan pengesahan 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
Sekarang, apabila mengakses titik akhir /protected, anda perlu menghantar token JWT dalam pengepala permintaan untuk mengesahkan pengguna.
Untuk menggunakan API, kita boleh menggunakan alatan seperti Posmen atau perpustakaan seperti permintaan dalam Python.
Contoh cara menggunakan API menggunakan permintaan:
import requests # Consumindo o endpoint de listagem de usuários response = requests.get('http://127.0.0.1:5000/users') print(response.json())
Mencipta API RESTful dengan Flask adalah mudah dan fleksibel. Flask menawarkan rangka kerja minimalis yang boleh dikembangkan untuk menyertakan ciri seperti pengesahan, pengendalian ralat dan lapisan keselamatan yang lain. Dengan mengikuti prinsip REST dan amalan pembangunan yang baik, adalah mungkin untuk membina API yang cekap dan berskala dengan Python.
Kini anda boleh membina API RESTful anda sendiri dengan Flask, menyesuaikan mengikut keperluan dan keperluan anda.
Atas ialah kandungan terperinci Cara Membuat API RESTful dengan Flask dan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!