اختبار شكل ونوع البيانات الي راجعه من الــ `API` باستخدام فلاتر 💙 مع مكتبة المخطوطه `blueprint` 👑
بسم الله، والصلاة والسلام على رسول الله الحمد لله الذي عَلَّمَ بالقلم.. عَلَّمَ الإنسانَ ما لم يَعْلَم والصلاةُ والسلامُ على خيرِ مُعَلِّمي الناسِ الخير محمد..
أما بعد..
في البداية اسالكم الدعاء لاخونا احمد جمال عبد الملك رحمه الله وان يجعل صبره في ميزان حسناتة
في المقاله دي هتكلم عن ال
- المتطلبات علشان تفهم المكتبة وتقدر تستخدمها
- ليه المكتبه اتعملت
- ازاي المكتبة حلت المشكلة
- ازاي تستخدم المكتبة بالامثلة
- ختام
توكلنا علي الله
محتاج ايه علشان تفهم المكتبة ؟
0 - تكون فاهم يعني ايه `Null` وزاي تحل مشاكل باستخدام ال `Null Safety` مصدر لبداية التعلم
1- تكون فاهم يعني ايه واجهه برمجيه `API` وتقدر تستخدمها مع دارت مصدر لبداية التعلم
2- تكون فاهم يعني ايه `JSON` وازاي بنحوله لـ dart class او ما يطلق عليه `Model` مصدر لبداية التعلم
3- تكون فاهم اختبار الوحدات `unit testing` مصدر لبداية التعلم
ليه المكتبة اتعملت ؟
كثير من الاوقات او معظم الاوقات مبيبقاش في دليل `documentation` لاستخدام الـ `api` نظرا لان اطر العمل المستخدمه مش كلها بتدعم كدا
- هنا بتكلم علي open api او swagger الي وظيفتهم توضيح ال من مسارات وشكل البيانات ونوعها في الـ API -
* وكمان لو الاطار اتاح الميزه دي مبتكونش بالشكل الكويس والمطور بيكسل يستخدمها وده سبب مشاكل كبيره منها ان ال Data Type الباك اند بيغيره بالخطاء او بيرجع ب Null بالخطاء
* وده طبعا كارثي نظرا لان دارت بتدعم ال Strong Types و معظمنا بنستخدمها بدل ال dynamic وده الصح
كارثي ليه ؟ علشان دارت هترمي Exception وهيعطل التطبيق لو انت مكنتش متوقعه واخطاء زي دي محدش بيتوقعها !
وده السبب او المشكله الي المكتبة بتحاول تخلصنا منهم !
ازاي المكتبة بتحل المشكلة دي ؟
- المكتبة بتوفرلك طريقه تحدد بيه شكل ونوع البيانات في ال JSON
- المكتبة بتدعم كل انواع البيانات في الــ JSON والمقابل ليها في Dart
- المكتبة بتوفرلك دالتين لنفس الهدف وهو التاكد ان
النوع والشكل الي انت حددته هو نفس النوع والشكل الي راجع من الـ API
وبالتالي لو حصل فشل والنوع مش مطابق فاسبب واحد من اثنين
* الاول الباك اند غير وانت تقدر تعرف انهي حقل الي غلط ولازم يتصلح
* الثاني انت عامل نوع البيانات بتاعك غلط عكس الصحيح في ال API
ازاي تستخدم المكتبة بالامثلة
اول حاجه محتاج تعمل مخطوطه للشكل الصحيح ونوع البيانات الصحيح
ثاني حاجه محتاج ال JSON الي هنطبق عليه المخطوطه دي ولو نجح يبقي تمام فشل يبقي في خطا
وده مثال للمكتبة مع ال unit test في فلاتر
unit testing
الخاتمه
المكتبة نفسها معمول ليها اختبارات tests كافية لتغيطة كل شي تقريبا فاستخدمها وانت مطئمن
المكتبة مش هدفها انك في فلاتر تختبر ال Api وبس
ولكن من الاستخدامات الاخري انك لو عملت Api بدارت تقدر تستخدم المكتبة علشان تختبر شغلك وتطلع ال api دايما مظبوطه
لو انت مهتم ب Dart في ال Server وتقدر تساهم في المشروع تقدر تشارك معانا في "القصر" - Palace