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