أسئلة مقابلات Web, APIs & Data Integration في Python
10 سؤال عن Web, APIs & Data Integration من مسار Python. اقرأ الإجابة المختصرة لكل سؤال هنا، وافتح السؤال للشرح الكامل والأمثلة والأخطاء الشائعة والمصادر.
- مبتدئ
كيف تتعامل مع JSON القادم من API؟
حوّل النص بـ json.loads، ثم تحقق من الشكل والأنواع عند الحدود، ثم حوّله إلى نموذج داخلي موثوق قبل استخدامه في منطق التطبيق.
اقرأ الشرح الكامل - مبتدئ
لماذا تستخدم urllib.parse بدل تركيب عناوين URL بدمج النصوص؟
لأنها ترمّز المعاملات بشكل صحيح (المسافات و & و = والحروف العربية)، وتفصل أجزاء العنوان بأمان، بينما الدمج اليدوي يكسر العناوين وقد يفتح ثغرات.
اقرأ الشرح الكامل - متوسط
ما القواعد الأساسية لاستخدام HTTP client في Python؟
حدد timeout دائمًا، وأعد استخدام client واحد (connection pooling)، وافحص status code صراحةً، وفرّق بين أخطاء النقل (timeouts وانقطاع الاتصال) وأخطاء HTTP (4xx و 5xx).
اقرأ الشرح الكامل - مبتدئ
كيف تمنع SQL injection عند استخدام sqlite3؟
استخدم الاستعلامات ذات المعاملات (placeholders مثل ? أو :name) ومرر القيم منفصلة، ولا تدمج مدخلات المستخدم في نص SQL أبدًا.
اقرأ الشرح الكامل - متوسط
كيف تدير المعاملات (transactions) في sqlite3؟
نفّذ مجموعة التغييرات كوحدة ذرية: commit عند نجاحها كلها و rollback عند فشل أي جزء، وأسهل طريقة استخدام الاتصال كمدير سياق with conn.
اقرأ الشرح الكامل - مبتدئ
كيف تقرأ وتكتب ملفات CSV بشكل صحيح؟
استخدم الموديول csv مع فتح الملف بـ newline="" و encoding صريح، واستخدم DictReader و DictWriter، بدل التقسيم اليدوي بـ split(",").
اقرأ الشرح الكامل - متوسط
ما مشكلة الـ naive datetime في الخدمات؟
الـ naive datetime لا يحمل منطقة زمنية، فيُفسَّر حسب إعدادات الجهاز، مما يسبب مقارنات وتحويلات خاطئة. خزّن الأوقات كـ aware بتوقيت UTC وحوّلها لمنطقة المستخدم عند العرض فقط.
اقرأ الشرح الكامل - متقدم
كيف تصمم ترقيم الصفحات (pagination) في API؟
استخدم offset/limit للبساطة مع البيانات الصغيرة الثابتة، و cursor (keyset) للبيانات الكبيرة أو المتغيرة، مع ترتيب حتمي وتوكن next مبهم.
اقرأ الشرح الكامل - متقدم
كيف تمنع إعادة المحاولة من إنشاء عمليات كتابة مكررة؟
اطلب من العميل إرسال idempotency key فريد لكل عملية، وخزّنه مع نتيجتها في نفس المعاملة، وأعد النتيجة المخزنة إذا وصل نفس المفتاح مرة أخرى بدل التنفيذ من جديد.
اقرأ الشرح الكامل - متقدم
كيف تفصل بين schema الـ API ونموذج الـ domain؟
عرّف نماذج طلب ورد خاصة بالـ API (DTOs) للتحقق والـ serialization، وحوّلها إلى نماذج domain داخلية مستقلة، فلا يتسرب شكل JSON وأسماؤه إلى منطق العمل.
اقرأ الشرح الكامل