مكتبة Flask-RESTful هي إضافة لـ Flask تساعد على بناء واجهات برمجة التطبيقات (APIs) بسهولة وبطريقة منظمة. توفر هذه المكتبة مجموعة من الأدوات لإنشاء APIs بطريقة مقروءة وسهلة الفهم، مما يجعل تطوير APIs أكثر كفاءة.
تثبيت المكتبة
أول خطوة هي تثبيت المكتبة باستخدام pip:
pip install Flask-RESTful
إنشاء مشروع بسيط باستخدام Flask-RESTful
دعونا ننشئ مشروعًا بسيطًا لإنشاء API لإدارة قائمة من المهام (to-do list).
1. إعداد المشروع
قم بإنشاء ملف Python جديد، دعنا نسميه app.py، واكتب فيه الكود التالي:
from flask import Flask
from flask_restful import Resource, Api, reqparse
app = Flask(__name__)
api = Api(app)
# قائمة لتخزين المهام
tasks = []
# مُعالج API لمهمة واحدة
class Task(Resource):
def get(self, task_id):
if task_id < len(tasks):
return tasks[task_id], 200
return {"message": "Task not found"}, 404
def post(self):
parser = reqparse.RequestParser()
parser.add_argument('name', required=True, help='Name of the task is required')
args = parser.parse_args()
task_id = len(tasks)
tasks.append({'id': task_id, 'name': args['name']})
return tasks[task_id], 201
def delete(self, task_id):
if task_id < len(tasks):
deleted_task = tasks.pop(task_id)
return deleted_task, 200
return {"message": "Task not found"}, 404
# مُعالج API لجميع المهام
class TaskList(Resource):
def get(self):
return tasks, 200
# إضافة الموارد إلى API
api.add_resource(Task, '/task/', endpoint='task')
api.add_resource(TaskList, '/tasks', endpoint='tasklist')
if __name__ == '__main__':
app.run(debug=True)
2. شرح الكود
- استيراد المكتبات: قمنا باستيراد Flask وFlask-RESTful.
- إنشاء التطبيق: أنشأنا مثيلًا من Flask ومثيلًا من Api.
- إنشاء قائمة مهام: استخدمنا قائمة فارغة لتخزين المهام.
- كلاس Task: هذا الكلاس يمثل مهمة واحدة. يتضمن:
get: لاسترجاع المهمة بناءً على task_id.post: لإضافة مهمة جديدة.delete: لحذف المهمة بناءً على task_id.
- كلاس TaskList: يمثل مجموعة المهام، ويتضمن:
get: لاسترجاع جميع المهام.
- إضافة الموارد إلى API: تمت إضافة الموارد باستخدام
api.add_resource.
3. تشغيل التطبيق
لإطلاق التطبيق، نفذ الأمر التالي في الطرفية:
python app.py
سوف يعمل السيرفر على http://localhost:5000.
4. اختبارات API
يمكنك الآن استخدام أدوات مثل Postman أو curl لاختبار الـ API.
-
لإضافة مهمة جديدة:
curl -X POST http://localhost:5000/tasks -d "name=First Task"
-
للحصول على جميع المهام:
curl http://localhost:5000/tasks
-
للحصول على مهمة معينة:
curl http://localhost:5000/task/0
-
لحذف مهمة:
curl -X DELETE http://localhost:5000/task/0
خلاصة
تساعدك مكتبة Flask-RESTful على بناء APIs بشكل منظم وسهل. يمكنك تعديل الكود حسب احتياجاتك وإضافة ميزات جديدة مثل التحقق من صحة البيانات وعمليات التسجيل وغيرها.