اختيال
استخدام Swagger لاستكشاف أخطاء التطبيق وإصلاحها
الأداة التالية التي يمكننا استخدامها لاختبار تطبيقنا وتصحيحه هي Swagger . لقد تعرفنا عليه سابقًا ؛ كما تتذكر ، يمكنك أن ترى فيه جميع نقاط النهاية الخاصة بالتطبيق الذي يتم تطويره وتشغيله والحصول على النتيجة. دعونا نلقي نظرة على هذا بمزيد من التفصيل.
إذن في Swagger
بادئ ذي بدء ، تذكر أن Middleware Token Auth يتم تمكينه افتراضيًا ، والذي يتحكم في الوصول إلى نقطة النهاية لمعظم نقاط النهاية. إنه يرفض الوصول للمستخدمين الذين لم يتم تفويضهم أو حتى اجتيازه ولكن ليس لديهم حقوق الوصول المناسبة (على سبيل المثال ، ينتمون إلى مجموعة Users ، ونقطة النهاية مخصصة حصريًا Admins ).
يمكن العثور على رمز التفويض الضروري باستخدام Developer Tools . كل ما عليك فعله هو تسجيل الدخول إلى تطبيق الويب المنشور ثم تلبية أي طلب. سيتم استخدام الرمز المميز في Request Headers . على سبيل المثال ، يمكنك رؤيته في لقطة الشاشة أعلى قليلاً في الوقت الحالي عندما قدمنا طلب GET للحصول على بيانات حول البلدان.
دعونا نرى كيف يمكنك الحصول عليه مباشرة في Swagger . للقيام بذلك ، ابحث عن نقطة النهاية المسؤولة عن التفويض (مجموعة Auth ، POST /Auth/ نقطة النهاية) وانقر فوق الزر " Try it out" . تأخذ نقطة النهاية هذه معلمتين ، Login وكلمة Password . حددها وانقر فوق Execute لإرسال الطلب. بالمناسبة ، هنا ، قد يكون من المفيد أيضًا استخدام Developer Tools ؛ يمكنك فتحها لمزيد من الدراسة التفصيلية للطلب والاستجابة.
سيحصل الرد على الرمز المطلوب ، بالإضافة إلى معلومات مفصلة حول المستخدم وجلساته.
يمكنك أن ترى أن الاستجابة المستلمة لا تختلف كثيرًا عن تلك التي رأيناها بالفعل في Developer Tools . في الوقت نفسه ، يتمتع Swagger بميزة لا يمكن إنكارها من حيث أنه يجعل من الممكن اختبار أي طلبات وإطلاق نقاط النهاية باستخدام المعلمات الضرورية في شكل مناسب. ولكن قبل متابعة هذا الاختبار ، دعنا ننقر على " Authorize " ونستخدم الرمز المميز المستلم لتأكيد التفويض.
إرسال الطلبات باستخدام Swagger
الآن دعنا نرسل طلبًا عبر Swagger للحصول على بيانات عن المدينة الأولى التي تأتي عبرها ، والتي يبلغ عدد سكانها أكثر من 5 ملايين شخص وكلمة " World " في الوصف. للقيام بذلك ، افتح GET /city/ endpoint واملأ المعلمات المطلوبة:
- _limit = 1 (مطلوب مدينة واحدة فقط)
- population_from = 5000000 (يجب التحقق من القيمة السكانية)
- _search_in = info (ابحث فقط في حقل info )
- _search = World (أبحث عن كلمة World )
يظهر الرد المستلم أن الطلب قد تم تنفيذه بشكل صحيح. تلقينا معلومات حول إحدى هذه المدن (نرى أن count = 3 ، مما يعني أن قاعدة البيانات تحتوي على معلومات حول ثلاث مدن مناسبة) ولم نتلق أي بيانات حول الدولة التي تقع فيها ( “country”: null ) ، منذ ذلك الحين لم يكن الاستعلام بحاجة إلى تقديم بيانات من الجداول ذات الصلة (إذا لزم الأمر ، كان من المفيد استخدام المعامل _with ).