فلاسك هو إطار عمل ويب بايثون شائع يُستخدم لبناء تطبيقات الويب. واحدة من أكثر المهام شيوعًا عند بناء تطبيق ويب هي إرسال البيانات من العميل إلى الخادم. يتم ذلك عادة باستخدام طريقة HTTP POST. JSON (Notation Object JavaScript) هو تنسيق تبادل بيانات خفيف الوزن يُستخدم عادةً لإرسال البيانات عبر الإنترنت.
في هذه التدوينة، سنستكشف كيفية استخدام فلاسك للتعامل مع بيانات JSON المرسلة عبر الطريقة HTTP ونكتشف كيفية استخدام Apidog، منصة شاملة تسهل تطوير واجهات برمجة التطبيقات بكفاءة، لتصميم واختبار واجهة برمجة التطبيقات REST بايثون الخاصة بك.
يمكنك أيضًا فحص الرؤوس، وملفات تعريف الارتباط، وأكواد الحالة، وغيرها من تفاصيل الاستجابة. كما يتيح لك Apidog التلاعب ببيانات الاستجابة باستخدام JavaScript، وتصفيتها باستخدام JSONPath، والتحقق من صحتها باستخدام JSON Schema.
بيانات JSON
JSON (Notation Object JavaScript) هو تنسيق تبادل بيانات خفيف الوزن يستخدم عادةً لإرسال البيانات عبر الإنترنت. يعتمد على مجموعة فرعية من لغة برمجة JavaScript، لكنه يمكن استخدامه مع أي لغة برمجة.
من بين مزايا استخدام JSON أنه سهل القراءة والكتابة. يتم تمثيل بيانات JSON كأزواج من المفتاح والقيمة، مما يجعل من السهل فهمها والعمل معها. يمكن أن تمثل JSON ستة أنواع من البيانات بشكل أصلي: سلاسل نصية، أرقام، قيم بوليون، فارغ، صفيفات، وكائنات. على سبيل المثال، إليك تمثيل JSON لمشاركة مدونة:
{
"id": 1001,
"title": "ما هو JSON؟",
"author": {
"id": 1,
"name": "جيمس ووكر"
},
"tags": [
"api",
"json",
"برمجة"
],
"published": false,
"publishedTimestamp": null
}
هذا المثال يوضح جميع أنواع بيانات JSON. كما يوضح اختصار البيانات المُنسقة بتنسيق JSON، وهو أحد الخصائص التي تجعل استخدامها جذابًا في واجهات برمجة التطبيقات.
طريقة HTTP POST
طريقة HTTP POST هي واحدة من أكثر طرق HTTP شيوعًا المستخدمة لإرسال البيانات من العميل إلى الخادم. عندما يرسل العميل طلب HTTP POST، يتضمن جسم رسالة يحتوي على البيانات التي يتم إرسالها. يمكن أن تكون هذه البيانات بتنسيقات متنوعة، بما في ذلك JSON.
من خلال استخدام JSON، يمكن للمطورين التأكد من أن البيانات المرسلة إلى الخادم منظمة جيدًا وسهلة الفهم، مما يعزز كفاءة إنشاء الموارد والتحديثات.

ما هو فلاسك ولماذا يجب عليك استخدامه؟
فلاسك هو إطار عمل ويب خفيف الوزن مكتوب بلغة بايثون. تم تصميمه ليكون بسيطًا وسهل الاستخدام، مع توفير جميع الميزات التي تحتاجها لبناء تطبيق ويب حديث.
فلاسك مبني على مجموعة أدوات Werkzeug WSGI ومحرك قوالب Jinja2. يوفر واجهة برمجة تطبيقات بسيطة وبديهية لمعالجة طلبات واستجابات HTTP.

واحدة من الميزات الرئيسية لفلاسك هي دعمه للتعامل مع بيانات JSON. يوفر فلاسك طريقة بسيطة لتحليل بيانات JSON المرسلة عبر طريقة HTTP POST. وهذا يجعل من السهل بناء تطبيقات ويب يمكنها قبول بيانات JSON من العملاء.
تثبيت فلاسك
فلاسك هو إطار عمل مصغر قائم على بايثون، لذا تحتاج إلى تثبيت بايثون على جهاز الكمبيوتر الخاص بك. يمكنك تنزيل أحدث إصدار من بايثون من الموقع الرسمي:

إنشاء بيئة افتراضية: من الجيد إنشاء بيئة افتراضية لمشروعك لتجنب التعارضات مع مشاريع بايثون الأخرى. يمكنك إنشاء بيئة افتراضية باستخدام venv، الوحدة المدمجة مع بايثون. إليك كيفية إنشاء بيئة افتراضية:
$ python3 -m venv myenv
سيؤدي هذا إلى إنشاء دليل جديد يسمى myenv في الدليل الحالي الخاص بك.
تفعيل البيئة الافتراضية: بعد إنشاء البيئة الافتراضية، تحتاج إلى تفعيلها. إليك كيفية تفعيل البيئة الافتراضية:
$ source myenv/bin/activate
تثبيت فلاسك: مع تفعيل البيئة الافتراضية، يمكنك الآن تثبيت فلاسك باستخدام pip، مدير حزم بايثون. إليك كيفية تثبيت فلاسك:
$ pip install Flask
سيؤدي هذا إلى تثبيت فلاسك والتبعيات الخاصة به.
تحقق من التثبيت: للتحقق من أنه تم تثبيت فلاسك بشكل صحيح، يمكنك إنشاء ملف جديد يُدعى app.py بمحتويات التالية:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'مرحبًا، أيها العالم!'
if __name__ == '__main__':
app.run()
احفظ الملف وشغله باستخدام الأمر التالي:
$ flask run
سيؤدي هذا إلى تشغيل خادم تطوير محلي على http://localhost:5000. افتح متصفح الويب الخاص بك وانتقل إلى http://localhost:5000. يجب أن ترى رسالة تقول "مرحبًا، أيها العالم!".
معالجة طلبات JSON في فلاسك
للتعامل مع بيانات JSON في فلاسك، ستحتاج إلى استخدام كائن request. يتم توفير كائن request بواسطة فلاسك ويحتوي على جميع البيانات التي تم إرسالها في طلب HTTP. لتحليل بيانات JSON، يمكنك استخدام السمة json لكائن request.
الحصول على بيانات JSON في فلاسك
للوصول إلى بيانات JSON المرسلة من العميل، يمكنك استخدام سمة json لكائن request أو طريقة get_json(). كلاهما يرجع قاموس بايثون أو قائمة تمثل بيانات JSON التي تم تحليلها.
الفرق هو أن السمة json ستثير استثناءً إذا كانت البيانات غير صالحة كـ JSON، بينما ستُرجع طريقة get_json() None في تلك الحالة. يمكنك أيضًا تمرير معامل force إلى طريقة get_json() لفرض تحليل البيانات كـ JSON، بغض النظر عن نوع المحتوى.
إليك مثال على معالج مسار بسيط يستقبل طلب POST مع بيانات JSON ويطبعها إلى وحدة التحكم:
from flask import Flask, request
app = Flask(__name__)
@app.route('/json', methods=['POST'])
def json():
# احصل على بيانات JSON من الطلب
data = request.get_json()
# اطبع البيانات إلى وحدة التحكم
print(data)
# أعد رسالة نجاح
return 'تم استلام JSON!'
نوع المحتوى للطلب مهم لأنه يخبر فلاسك كيفية تحليل البيانات. إذا كان نوع المحتوى هو application/json، فسيقوم فلاسك تلقائيًا بتحليل البيانات كـ JSON ويجعلها متاحة من خلال السمة json أو طريقة get_json().
إذا لم يتم تحديد نوع المحتوى أو كان شيئًا آخر، فلن يقوم فلاسك بتحليل البيانات كـ JSON ما لم تستخدم معامل force لطريقة get_json(). لذلك، يُوصى بتعيين نوع المحتوى إلى application/json عند إرسال بيانات JSON إلى فلاسك، أو التعامل مع الحالات التي لا يكون فيها نوع المحتوى صحيحًا أو البيانات ليست صالحة كـ JSON.
إرسال استجابات JSON إلى العميل
لإنشاء وإعادة استجابات JSON باستخدام دالة jsonify() من فلاسك، تحتاج إلى استيراد الدالة من وحدة flask وتمرير قاموس بايثون أو قائمة كمعامل. ستقوم الدالة بتحويل كائن بايثون إلى سلسلة JSON وتعيين نوع المحتوى للاستجابة إلى application/json. بهذه الطريقة، يمكن للعميل تحليل بيانات JSON بسهولة واستخدامها لأغراضه.
إليك مثال على معالج مسار بسيط يرسل استجابة JSON مع بعض البيانات إلى العميل:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/data')
def data():
# إنشاء قاموس بايثون مع بعض البيانات
data = {
'name': 'بينج',
'age': 10,
'hobbies': ['البحث', 'الدردشة', 'التعلم']
}
# أعد استجابة JSON باستخدام دالة jsonify()
return jsonify(data)
تحتوي دالة jsonify() على بعض المعاملات الاختيارية التي يمكن أن تؤثر على تنسيق وترتيب مخرجات JSON. على سبيل المثال، يمكنك استخدام معامل sort_keys لترتيب مفاتيح كائن JSON بترتيب أبجدي، أو معامل indent لإضافة مسافات بيضاء والأسطر الجديدة إلى سلسلة JSON. يمكن أن تجعل هذه المعاملات مخرجات JSON أكثر قابلية للقراءة والتناسق، لكن يمكن أن تزيد أيضًا من حجم الاستجابة.

كيفية إرسال بيانات JSON باستخدام Apidog
Apidog هو أداة رائعة لأي شخص يعمل مع واجهات برمجة التطبيقات، سواء كنت مطورًا أو مختبرًا أو مصممًا أو طالبًا. يساعدك على:
- تعلم كيفية استخدام واجهات برمجة التطبيقات المختلفة واستكشاف ميزاتها
- اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك والعثور على الأخطاء
- تجربة مع معلمات وخيارات مختلفة ورؤية كيف تؤثر على الاستجابة
- توثيق وإظهار استخدام واجهة برمجة التطبيقات الخاصة بك ونتائجها
- التعاون والتواصل مع مستخدمي واجهات برمجة التطبيقات الآخرين والمطورين
لاختبار واجهة برمجة التطبيقات Flask الخاصة بك التي يمكن أن ترسل وتستقبل بيانات JSON باستخدام Apidog، تحتاج إلى اتباع الخطوات التالية:
- زيارة موقع Apidog وإنشاء حساب مجاني. يمكنك أيضًا استخدام Apidog بدون حساب، لكنك لن تتمكن من حفظ ومشاركة طلباتك. افتح Apidog وأنشئ طلبًا جديدًا.

- حدد طريقة HTTP التي تريد استخدامها. على سبيل المثال، إذا كنت ترغب في الحصول على قائمة الرسائل، يمكنك اختيار طريقة GET. إذا كنت ترغب في إنشاء رسالة جديدة، يمكنك اختيار طريقة POST.

- أدخل عنوان URL لنقطة النهاية الخاصة بواجهة برمجة التطبيقات في حقل إدخال URL. أضف أي رؤوس، أو ملفات تعريف الارتباط، أو معلمات تحتاجها لطلبك. على سبيل المثال، إذا كنت ترغب في إنشاء رسالة جديدة، تحتاج إلى إضافة رأس
Content-Typeبالقيمةapplication/jsonوكتابة البيانات بتنسيق JSON في حقل إدخال الجسم. على سبيل المثال، يمكنك كتابة البيانات التالية:

- انقر على زر الإرسال لإرسال الطلب إلى واجهة برمجة التطبيقات الخاصة بك. سيقوم Apidog بعد ذلك بعرض الاستجابة من واجهة برمجة التطبيقات الخاصة بك في علامة تبويب الاستجابة. يمكنك أيضًا التبديل إلى علامات التبويب Headers أو Cookies أو Raw لرؤية تفاصيل أخرى عن الاستجابة.

- قم بتحليل والتلاعب ببيانات الاستجابة باستخدام ميزات وأدوات Apidog. يمكنك استخدام JSON Viewer وJSONPath وJavaScript وJSON Schema وغيرها من الميزات والأدوات لعرض، وتصنيف، وتعديل، أو التحقق من صحة بيانات الاستجابة. يمكنك أيضًا حفظ طلبك واستجابتك ومشاركتها مع الآخرين باستخدام عنوان URL فريد.
لقد اختبرت الآن واجهة برمجة التطبيقات Flask الخاصة بك التي يمكن أن ترسل وتستقبل بيانات JSON باستخدام Apidog. يمكنك أيضًا اختبار نقاط النهاية وطرق واجهة برمجة التطبيقات الأخرى باستخدام نفس الخطوات. يمكنك أيضًا استخدام Apidog لاختبار واجهات برمجة التطبيقات الأخرى التي تجدها عبر الإنترنت أو تقوم بإنشائها بنفسك. Apidog هو أداة متعددة الاستخدامات وقوية يمكن أن تساعدك في أي مهمة متعلقة بواجهة برمجة التطبيقات. يمكنك معرفة المزيد عن Apidog وميزاته وأدواته من الموقع الرسمي:
الاستنتاج
في هذه التدوينة، تعلمنا كيفية التعامل مع طلبات JSON في فلاسك، وهو إطار عمل مصغر شهير لتطوير الويب في بايثون. لقد رأينا كيف:
- الحصول على وتحليل بيانات JSON من طلبات POST باستخدام السمة
jsonلكائنrequestأو طريقةget_json(). - إنشاء وإعادة استجابات JSON باستخدام دالة
jsonify()، التي تحول قاموس بايثون أو قائمة إلى سلسلة JSON وتعين النوع المناسب للمحتوى للاستجابة. - استخدام بعض المعاملات الاختيارية لدالة
jsonify()، مثلsort_keysوindent، للتأثير على تنسيق وترتيب مخرجات JSON. - استخدام Apidog لإرسال بيانات JSON
