ما أطلقناه هذا الشهر: الترميز الجغرافي وIP والمنطقة الزمنية والمزيد
ملخص للعمل الأخير في الواجهة: مضيفات توافق جديدة، واستعلامات أسرع للمنطقة الزمنية والارتفاع، وميزات جديدة في لوحة التحكم، ورؤية أوضح للحصة.
استجابة الخطأ ليست هامشًا في أي واجهة API، بل هي جزء من العقد الذي تعتمد عليه كل عملية تكامل بقدر اعتمادها على الاستجابة الناجحة. لقد وحّدنا صيغة الأخطاء في جميع نقاط النهاية الأصلية في My Geocode، بحيث يبدو الفشل بالشكل نفسه بغض النظر عن الجزء من الواجهة الذي أنتجه.
سواء فشل الطلب بسبب معامل مفقود أو مفتاح غير صالح أو حصة مستنفدة أو إحداثية مشوهة، فإن الاستجابة تتبع بنية واحدة يمكن توقعها. ويعني هذا الاتساق أن شيفرة معالجة الأخطاء التي تُكتب مرة واحدة لنقطة نهاية واحدة تعمل بالطريقة نفسها مع كل نقطة نهاية أصلية أخرى دون الحاجة إلى منطق معالجة منفصل لكل منها.
تستحق الأخطاء المتعلقة بالحصة إشارة خاصة، لأنها النوع الأكثر شيوعًا الذي ستواجهه أي عملية تكامل نشطة. عندما يتجاوز طلب ما الحصة المتاحة لمفتاح أو لشبكة، توضح الاستجابة ذلك، كما أن ترويسات الحصة الموجودة أصلًا في كل استجابة، X-Quota-Limit وX-Quota-Used وX-Quota-Free-Remaining وغيرها، تخبرك بالضبط بمقدار المساحة التي كانت متاحة قبل الطلب الذي فشل. ويعني هذا الجمع أن العميل يستطيع التمييز بين مشكلة في الحصة ومشكلة في المصادقة أو طلب غير صحيح من خلال الاستجابة وحدها، دون تخمين.
مضيفات التوافق استثناء مقصود من هذا التوحيد، ولسبب وجيه. فالغرض منها بالكامل هو إعادة إنتاج شكل الطلب والاستجابة لدى مزود آخر بدقة، ويشمل ذلك شكل الأخطاء. فالطلب المصاغ لخدمات Bing Maps REST Services الذي يفشل يحصل مع ذلك على خطأ بصيغة الأخطاء الخاصة بـ Bing، لأن مطابقة هذا الشكل بدقة، في النجاح والفشل، هي الغاية الأساسية من المضيف البديل المتوافق. وتوحيد الأخطاء هناك سيكسر التوافق نفسه الذي وُجد المضيف لتوفيره.
لأي شيء مبني على نقاط النهاية الأصلية لدينا، ينبغي أن تجعل هذه الصيغة الأوضح معالجة الأخطاء أبسط بشكل ملحوظ في الكتابة والصيانة. إجراء تحليل واحد، ومجموعة واحدة من الحقول المتوقعة، وسلوك متسق عبر /v1/forward و/v1/reverse و/v1/ip و/v1/timezone و/v1/elevation و/v1/autocomplete و/v1/postcode على حد سواء.
التوثيق الكامل لصيغة الأخطاء، بما في ذلك أسماء الحقول والأسباب الشائعة، متاح في /docs/errors/. إذا كانت عملية التكامل لديك تحتوي حاليًا على فروع منفصلة لمعالجة الأخطاء لنقاط نهاية أصلية مختلفة، فهذه لحظة مناسبة لتبسيطها إلى فرع واحد.