الانتقال

الانتقال من PositionStack

تُبقي PositionStack الأمور بسيطة بقدر ما يمكن أن تكون عليه API للترميز الجغرافي: معامل استعلام access_key، ومصفوفة JSON باسم data يحمل كل عنصر فيها latitude وlongitude وlabel وعددًا قليلًا من حقول العنوان المسطحة بدلًا من بنية متداخلة بعمق. وهذا التسطيح غالبًا هو بالضبط سبب اختيار فريق صغير لها في الأصل، إذ يقل ما يجب تعلمه قبل أول استدعاء ناجح.

لا ينبغي لترحيل بعيدًا عن API بسيطة عن قصد أن يعيد إدخال التعقيد، وهذا في الحقيقة هو المتطلب الأساسي لأي نهج قائم على التوافق بدلًا من إعادة الكتابة الكاملة. والسؤال الذي يستحق الطرح قبل البدء هو ما إذا كان المضيف البديل المتوافق لدى المزود الجديد يحافظ فعلًا على هذا التسطيح، أم أنه ينقل التعقيد فقط إلى موضع آخر في العملية.

يعيد المضيف المتوافق مع PositionStack من My Geocode إنتاج مصفوفة data وبنية حقولها المسطحة بدقة، وصولًا إلى أسماء latitude وlongitude وlabel، ولا يختلف عن استجابة PositionStack نفسها إلا نص حقوق النشر والشروط والخصوصية. والمرجع متاح في /compatibility/positionstack/. وبالنسبة لمعظم التكاملات المبنية على هذه API، لا يحتاج الكود الذي يقرأ data[0].latitude إلى أي تغيير سوى المضيف والمفتاح.

قائمة قصيرة بما يجب التحقق منه قبل التحويل:

  • ما إذا كان كودك يتحقق من نمط محدد لرموز حالة HTTP مرتبط باستجابات الأخطاء لدى PositionStack، لأن أشكال الأخطاء موثقة بشكل منفصل في /docs/errors/ وتستحق مقارنة مباشرة
  • ما إذا كان اسم المعامل access_key مثبتًا في الكود في أي موضع، لأن المضيف الجديد يقبل المفتاح أيضًا في ترويسة X-API-Key، أو ترويسة Authorization: Bearer، أو عبر مصادقة HTTP Basic إذا كنت تفضّل الابتعاد عن معامل الاستعلام أثناء الترحيل
  • ما إذا كان أي كود على جانب العميل يكشف المفتاح مباشرة، وهذه لحظة مناسبة لنقل هذا الاستدعاء خلف وكيل على جانب الخادم بغض النظر عن المزود الذي سيكون على الطرف الآخر

مقارنة التكلفة هنا بسيطة فعلًا لأن كلا النهجين يفضّل تقليل العوائق. تقدّم My Geocode 2,500 طلب مجاني يوميًا دون الحاجة إلى أي مفتاح على الإطلاق، ثم 2,500 طلب مجاني إضافي لكل مفتاح يوميًا يُحتسب لكل شبكة، وبعد ذلك رصيد مسبق الدفع بسعر 0.0001 € لكل طلب أو مفتاح Unlimited بسعر 50 € شهريًا. وكل نقطة نهاية، بما فيها هذا المضيف المتوافق، مسعّرة بشكل متطابق، لذا لا حاجة إلى حساب منفصل لأحمال PositionStack المجمّعة أو عالية الحجم بعد انتقالها.

بالنسبة لمشروع صغير نما بما يتجاوز ما صُمم حساب جانبي للتعامل معه، يكون هذا النوع من الترحيل عادةً ظهيرة واحدة من الاختبار وليس مشروعًا. وجّه نسخة اختبار (staging) إلى المضيف الجديد، وقارن عينة من العناوين، وإذا تطابق الشكل، فإن التبديل نفسه مجرد تغيير في الإعدادات.