API الذي يجعلك تبكي


ما يمكن توقعه


الهدف هو إظهار للمطورين المشكلات التي يواجهها مستخدمو واجهة برمجة التطبيقات الخاصة بهم على مثال العمل مع أنظمة CRM المختلفة.

لحماية وجهي ، لن أعلن أسماء المشاركين في هذه المقالة.
أنا أيضًا - لست مبرمجًا لصديقة أمي ، لذلك لا تأخذ استنتاجاتي للخيار الحقيقي الوحيد.

كحل


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

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

منذ ذلك الحين ، عاش الفتى وعاش وصنع الخير. وقال انه لا يعرف المتاعب والأحزان ... أم أنه يعلم؟ دعونا معرفة ذلك!

حصلت على وظيفة في شركة الاستخبارات التجارية. وأي نوع من التحليلات يمكن أن يكون بدون بيانات؟ لذلك ، كان لدى الشركة فريق منفصل ، ثم قسم كان يعمل على جمع البيانات من مواقع العملاء لإنشاء جداول الإيرادات من القنوات الإعلانية وغيرها من المصادر. عند الحديث عن التفاصيل ، كانت مهمتي هي تثبيت عدادنا على المواقع ، وجمع البيانات حول الزائر ، وإنشاء تطبيقات من النماذج ، والمحادثات عبر الإنترنت ، ومرات الاستدعاء ، إلخ. في أنظمة CRM الخاصة بهم. منها ، في المستقبل ، سحب تحليلاتنا معلومات حول حالة وكمية البيع.

ويبدو أنه لا يوجد شيء معقد هنا ، بالنظر إلى أن إنشاء تطبيقات في CRM تم تبسيطه عن طريق التفاف نظامنا ، والذي ، باستخدام طلب واحد ، أنشأ التطبيق والعميل ، بما في ذلك تولي مسؤولية خدمات الطرف الثالث. ولكن كما يجب أن تفهم ، فإن هذا المنطق لا يختلف في المرونة. وإذا احتاج العميل إلى شيء غير قياسي ، فقد كان من الضروري بالفعل "إيقاف تشغيل وضع الراحة" وشمر أكمامه للعمل مباشرة مع واجهة برمجة التطبيقات للنظام المطلوب. وأحيانًا ، من خلال العمل مع واجهة برمجة التطبيقات (API) الإشكالية التالية ، أعتقد أنه سيكون من الأفضل البقاء فيها. الدعم ...

المشكلة رقم 1: نقص الأساليب / البيانات


ربما تكون المشكلة الأكثر شيوعًا التي واجهتها في حياتي هي قلة القدرة على الحصول على البيانات التي أحتاجها وهي في الواجهة. تنشأ النزاعات مع العملاء باستمرار وتستمر في الظهور ، نظرًا لحقيقة أننا لا نستطيع الحصول على شيء يرونه على شاشات مراقبيهم يوميًا.

على سبيل المثال ، قبل عامين ، أتى إلينا عميل كبير إلى حد ما كان بحاجة إلى حفظه في ملفات CRM التي يرسلها العملاء إليه من النماذج الموجودة على الموقع. مهمة عادية ، لكن لم يكن هناك إمكانية للتنفيذ ، ولا حتى يومنا هذا!

كان الفشل للعميل غير مقبول ، وفي النهاية اضطررنا إلى تحميل الملفات ، مضاهاة طلبات JS من الواجهة.

يجب أن أقول أن CRM هذا ، إذن في API ، يخول أيضًا في الواجهة ، والذي ، بالنسبة لي ، حل غريب إلى حد ما. ومع ذلك ، بفضل هذا ، لم يكن لدينا لمحاكاة التخويل المعتاد. أم هل تم تصوره ...؟

حدث آخر مع نفس CRM حدث منذ وقت ليس ببعيد. كان من الضروري تحمل مسؤولية مدير التطبيق الذي نشط حاليًا. وكما فهمت بالفعل ، لا تُرجع واجهة برمجة التطبيقات معلومات حول نشاط المدير إلينا. ولكن المفارقة هي أن JS API يعود. نتيجةً لذلك ، اضطررت إلى كتابة تطبيق JS ، وهو نوع من أنواع الوسيط ، حيث أعلم الخادم عن المديرين النشطين في الوقت الحالي.

الحل:
في فريقنا ، من المعتاد إنشاء طريقة API عامة للواجهة ، والتفاعل مع الخادم من خلالها بالفعل. هذا يحل مشكلة عدم التوافق بين القدرات التقنية للواجهة وواجهة برمجة التطبيقات العامة.

المشكلة رقم 2: عدم وجود نمط موحد للطلبات / الردود


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

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

الحل:
يجب أن تتوافق أي طريقة api جديدة ، إن أمكن ، مع هيكل الأساليب الحالية. يمكن للقيادة الفنية (أو قيادة الفريق بسبب الافتقار إلى الأول) أن تضع لائحة ، نوعًا من نمط الكود ، وفقًا لما هو ضروري لتطوير واجهة برمجة التطبيقات ، ودون أن تفشل في تعريف جميع المطورين بها. إذا كانت المشكلة موجودة بالفعل في مكان ما ، فمن الأفضل إذا أمكن وضع عكاز على جانبك بدلاً من إجبار الآلاف من عملائك على فعل ذلك إلى جانبكم.

المشكلة رقم 3: سوء التوثيق أو عدم وجوده


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

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

الحل:
سأقدم بعض النقاط التي ، بالنسبة لي ، أصف وثائق الجودة:

  • البحث بالاسم والوصف ومعلمات الطريقة
  • الوصف الصحيح لغرض الطريقة
  • قائمة المعلمات المقبولة مع النوع والوصف
  • قائمة المعلمات التي تم إرجاعها مع النوع والوصف
  • طلب مثال
  • مثال الاستجابة
  • رموز الخطأ المحتملة مع الوصف
  • صندوق رمل يمكنك من خلاله "اللعب" مع الطلبات في وضع التصميم
  • تغيير تاريخ جميع أساليب api للإشارة سريعة

المشكلة رقم 4: الدراجات إذن


أنت تعرف هذا الشعور الرائع عندما تفتح وثائق نظام جديد ، وهناك ، في قسم التفويض ، يرد وصف 3 طرق للحصول على مفتاح صالح لطلب واحد فقط ...؟ لذلك ، ليس لدي ذلك.

يبقى لغزا بالنسبة لي لماذا يتخلى المطورون عن برنامج Oauth 2.0 لصالح دراجاتهم؟ حسناً ، إذا كان التفويض مقصورًا على رمز ثابت واحد ، ولكن هنا سلسلة التفويض كاملة ...

الحل:
يجب ألا تعيد اختراع دراجتك عندما تكون هناك معايير جاهزة بالفعل. في الواقع ، بالنسبة لهذه المعايير ، فإن للمطورين بالفعل مكوناتهم الخاصة للحصول على ترخيص بسيط.

خاتمة


تحدثت عن 4 مشاكل واجهتها في بداية رحلتي إلى هذا اليوم. لقد حاولت تقديم حلولهم ، ولكن ما إذا كانت جيدة أم لا هو أمر تقرره أنت. في النهاية ، كل واحد منا لديه بنية التفكير الخاصة بنا.

لذلك ، أشكر جميع الذين قرأوا حتى الآن! هذه مقالتي الأولى ، وإذا كانت ذات قيمة إعلامية بالنسبة لك ، فسيسعدني أن أواصل سلسلة المقالات حول معاني في واجهة برمجة التطبيقات.

وبالطبع ، سأكون سعيدًا لسماع آراء الخبراء في التعليقات.

كل ذلك مع 2020 القادمة!

Source: https://habr.com/ru/post/ar483030/


All Articles