يتضمن توزيع ملفات تعريف API Scaife هذا ملفات Yaml و JSON و HTML. في معظم الإصدارات ، يوجد ملف واحد في كل تنسيق ملف لكل وحدة من وحدات Scaife الخمس.
في إصدار واجهات برمجة تطبيقات Scaife في مارس 2021 ، أصدرنا فقط ملفات YAML. يحتوي هذا الإصدار على جميع وحداتنا التي تم تحديثها لاستخدام تنسيق OpenAPI الإصدار 3. في المستقبل ، سنقوم أيضًا بتحديث البرامج النصية التي تقوم بتوليد الكود الآلي إلى JSON و HTML ، للعمل مع OpenAPI الإصدار 3.
يحدد ملف YAML تعريف API Begity Environment (SCAIFE) (SCAIF) [1 ، 2 ، 3 ، 5] ، بتنسيق يمكن للمطورين استخدامه بسهولة لعرض التعليمات الرمز وتعديلها وإنشائها تلقائيًا من (على سبيل المثال ، مع أدوات محرر التبخير وأدوات التبخير [4]). تم إنشاء ملف YAML يدويًا تقريبًا من قِبل مطوري SEI. الأشياء الوحيدة التي تم إنشاؤها تلقائيًا بواسطة أدوات Swagger داخل ملف YAML هي بعض الأمثلة.
تم إنشاء ملفات JSON تلقائيًا عن طريق تشغيل Swagger-Codegen على ملفات Swagger.yaml ، نظرًا لأن بعض المطورين يفضلون عرض واجهة برمجة التطبيقات في JSON أو لديهم أدوات توليد الكود التي تعمل بشكل أفضل مع JSON.
تحدد ملفات HTML أيضًا تعريف API SCAFE ، بتنسيق قابل للقراءة من قبل الأشخاص الذين يفضلون عدم (أو ليس لديهم أدوات ل) قراءة ملفات YAML. يمكن عرض ملفات HTML في أي متصفح ويب قياسي. تحتوي ملفات HTML على ارتباطات تشعبية ، ويوفر الورقة البيضاء المشار إليها أدناه إرشادات حول كيفية فهم ملفات HTML.
Scaife هي بنية تدعم تصنيف التحليل الثابت وتحديد الأولويات. تم تصميمه بحيث يمكن أن تتكامل مجموعة واسعة من أدوات التحليل الثابت مع النظام باستخدام تعريف API الذي نطوره. اعتبارًا من إصدارات Scaife API 2.0.0 ، أضفنا مكالمات API لتمكين Scaife لتلقي التحديثات حول ارتباطات الرمز ومخرجات تحليل ثابت جديدة من خوادم التكامل المستمر (CI). نتوقع أن تكون واجهة برمجة التطبيقات (API) ذات أهمية للمؤسسات التي تقوم بتطوير و/أو البحث عن أدوات التحليل الثابت ، ومجمعي التدقيق في التحليل الثابت ، وغيرها من أطر التدقيق في التحليل الثابت. يمكن الرجوع إلى تعريف API Scaife هذا من قبل المطورين ، لمساعدتهم على تقدير جهود التنمية التي ستكون مطلوبة لتعديل أدوات (أدوات) مؤسستهم لإجراء مكالمات Scaife API والرد عليها. أيضًا ، يتم نشر تعريف API هذا بهدف توليد ملاحظات من المطورين والمؤسسات المهتمة بتنفيذ API SCAFE ، للمساعدة في تحسين واجهة برمجة تطبيقات SCAFE لتصبح أكثر سهولة من قبل المطورين لمجموعة واسعة من أدوات التحليل الثابت. نظام النموذج الأولي الذي ينفذ أنه تم توزيعه على بحث المتعاونين في المشروع.
تشمل بنية Scaife الموضحة في الشكل خمسة خوادم. النظام معياري ، مصمم بحيث يمكن إنشاء كل وحدة بواسطة أدوات/برامج مختلفة بينما يجب أن يحافظ النظام العام على نفس الوظيفة. تحتوي وحدة واجهة المستخدم على واجهة واجهة المستخدم الرسومية الأمامية التي تتيح عرض تنبيهات التحليل الثابت (FFSA) وتخزين المشاريع المحلية. تهدف بنية Scaife إلى تمكين مجموعة واسعة من أدوات FFSA وأدوات التجميع التنبيه للحصول على وظائف التصنيف وتحديد الأولويات من خلال التفاعل كوحدة واجهة المستخدم مع بقية نظام Scaife. يجب أن تقوم هذه الأدوات بتثبيت مكالمات واجهة برمجة تطبيقات وحدة واجهة المستخدم إلى الخوادم الأخرى ، للقيام بذلك. تقوم وحدة DataHub بتخزين البيانات (الأداة ، التنبيه ، المشروع ، البيانات الوصفية لجناح الاختبار ، الجينات ، إلخ) من وحدات واجهة المستخدم واحدة أو أكثر ويصبح بعضًا من التحسس التلوي. تقوم وحدة الإحصاء بإنشاء وتشغيل وتخزين المصنفات والخوارزميات التكيفية (التعلم النشط) وخوارزميات المعلمة المفرطة الآلية. تقوم وحدة تحديد الأولويات بتخزين صيغ تحديد الأولويات وحقول تحديد الأولويات المحملة للمستخدم. يتم استخدام وحدة التسجيل للمصادقة والتحكم في الوصول. إنه يولد رموز التسجيل ، بالإضافة إلى أنه يوفر المصادقة والترخيص الأساسي للخوادم الأخرى.
حدد واحدة من الوحدات الخمس لبدء التفتيش. لتمكين أدائهم من التفاعل مع نظام Scaife ، تحتاج أدائهم إلى إنشاء إنشاء واجهة برمجة تطبيقات وحدة واجهة المستخدم. ومع ذلك ، فإن بعض الباحثين/المطورين يركزون على تحسين التصنيف والتعلم النشط والتحسين الآلي للمعلمة ، بدلاً من ذلك ، سيرغب في التركيز على واجهة برمجة تطبيقات وحدة الإحصاء. يمكنهم تطوير خوارزميات جديدة ودمجها بشكل معياري ضمن نموذج أولي قمنا بتطويره (إذا كانوا متعاونين في البحث لدينا) أو ببساطة تعديل أدواتهم الخاصة لإنشاء إنشاء واجهة برمجة تطبيقات وحدة الإحصائيات ، ثم التفاعل مع نظام SCAIFE مع وحدات أخرى تم تطويرها من قبل أشخاص مختلفين (على سبيل المثال ، لوحدة واجهة المستخدم التي يمكنهم استخدامها للنسخة التي نطورها للعمل مع Modulary). وبالمثل ، يركز بعض الباحثين/المطورين على تحسين الأداء والأمان والمرونة وقابلية تخزين البيانات المجمعة ويتوقع في النهاية أن يحصلوا على الحمل. سوف يرغب هؤلاء الأشخاص في التركيز على واجهة برمجة تطبيقات وحدة Datahub. نتوقع أن يقوم عدد أقل من الباحثين/المطورين بتنفيذ وحدات التسجيل أو تحديد الأولويات. ومع ذلك ، فإن واجهات برمجة التطبيقات الخاصة بهم ستظل مفيدة للمراجعة ، لأن الخوادم الأخرى تحتاج إلى التفاعل معهم سواء في العميل أو دور الخادم.
إذا استطعت ذلك ، فإننا نشجعك على استخدام محرر Swagger مفتوح المصدر (ومجاني) [4] أو أداة عرض وتحرير API مماثلة. افتح ملف تعريف API (.yaml أو .json) في ذلك. يوفر Swagger Editor طريقة سهلة الاستخدام لعرض الاختبارات البسيطة ، وتعديل تعريف API.
خلاف ذلك ، عرض ملف تعريف API HTML في متصفح الويب. وبهذه الطريقة ، يمكن الوصول إلى النماذج والأساليب من خلال اتباع الارتباطات التشعبية المرتبطة بكل مورد في قسم تعريف API SCAFE أدناه.
يتم تصنيف كل قسم تعريف API بناءً على وحدات المصدر والوجهة لمكالمات API. على سبيل المثال ، يحتوي قسم تعريف API للتسجيل والتسجيل السريع في النماذج على فئة واحدة فقط من مكالمات API ضمن تسمية التسمية. يأتي مصدر (طلب) مكالمات API من وحدة واجهة المستخدم ، ويتم إعادة توجيه مكالمات API إلى الوجهة - وحدة التسجيل. يتم تعريف نماذج البيانات في القسم السفلي من الملف.
نأمل ألا تفحص واجهة برمجة تطبيقات فقط ، بل ستستخدمها لدمج الأداة أو الكود في نظام Scaife. يمكنك إنشاء التعليمات البرمجية تلقائيًا من تعريف API YAML أو JSON لأي من وحدات Scaife ، باستخدام Swagger Codegen [4] أو أدوات مماثلة. هذا ليس فقط لصالح تسريع وتآكل تطوير الكود ، ولكنه يضمن أيضًا أن الرمز يثبت أنظمة API Scaife. إذا كان لديك أداة تريد إنشاء رمز العميل لـ (بمعنى ، فأنت تريد رمزًا من شأنه إجراء مكالمة إلى خادم Scaife محدد في تعريف واجهة برمجة تطبيقات هذا الخادم) ، ستقوم الأدوات مثل Swagger Codegen بإنشاء رمز في أي مجموعة واسعة من اللغات. يمكنك انخفاض رمز العميل الذي تم إنشاؤه في الكود الخاص بك في المكان الصحيح ، واستخدام متغيراتك الخاصة كمعلمات. وبالمثل ، يمكنك إنشاء رمز الخادم تلقائيًا لأي من وحدات SCAFE ، بما في ذلك كعب وظائف وحدة التحكم لكل من مكالمات API إلى هذا الخادم الذي ستقوم بعد ذلك بتجسيد الكود الداخلي.
ملاحظات خاصة لمراجعي API: