RAML (برنامج)

لغة نمذجة واجهات برمجة التطبيقات RESTful ( RAML ) هي لغة مبنية على YAML لوصف واجهات برمجة التطبيقات الثابتة (وليس واجهات برمجة تطبيقات REST). [ 2 ] توفر هذه اللغة جميع المعلومات اللازمة لوصف واجهات برمجة التطبيقات في المستوى الثاني من نموذج نضج ريتشاردسون . على الرغم من تصميمها مع مراعاة واجهات برمجة تطبيقات RESTful، إلا أن RAML لا تستطيع وصف واجهات برمجة التطبيقات التي تلتزم بجميع قيود REST (لا يمكنها وصف واجهة برمجة تطبيقات تلتزم بـ HATEOAS ، على وجه الخصوص). تشجع RAML على إعادة الاستخدام، وتُمكّن من اكتشاف الأنماط ومشاركتها، وتهدف إلى ظهور أفضل الممارسات بناءً على الجدارة. [ 3 ]

تاريخ

طُرحت لغة RAML لأول مرة عام 2013. وقد وضع مواصفاتها الأولية كلٌ من أوري ساريد، وإيميليانو ليسيندي، وسانتياغو فاكاس، وداميان مارتينيز، وحظيت بدعم من رواد التكنولوجيا مثل MuleSoft وAngularJS وIntuit وBox وPayPal وProgrammable Web وAPI Web Science وKin Lane وSOA Software وCisco. [ 4 ] ويتولى فريق عمل RAML إدارة عملية التطوير. [ ٥ ] يضم فريق العمل الحالي الموقعين قادة تقنيين من MuleSoft (أوري ساريد، المدير التقني)، و AngularJS (ميسكو هيفري، مؤسس المشروع)، وIntuit (إيفان لازاروف، كبير مهندسي المؤسسة)، و Airware (بيتر ريكسر، مدير المنتج - منصة المطورين)، و Programmable Web and API Science (جون موسر، المؤسس)، و SOA Software (توني غولوتّا، مدير التطوير)، و Cisco (جايديب سوبيدار، مدير أول، إدارة المنتجات - مجموعة حلول تكامل التطبيقات)، و VMware (كيفن دوفي، مهندس أول في MTS)، و Akamai Technologies (روب داينو، مدير هندسة منصة OPEN API من Akamai)، و Restlet (جيروم لوفيل، المدير التقني والمؤسس). RAML هي علامة تجارية مسجلة لشركة MuleSoft. [ ٦ ]

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

هناك عدد من الأسباب التي جعلت لغة RAML تتجاوز كونها لغة خاصة بمورد واحد وتثبت أنها مثيرة للاهتمام لمجتمع API الأوسع: [ 7 ]

  • تم طرح لغة RAML كمصدر مفتوح، إلى جانب أدوات ومحللات للغات الشائعة. ستشرف لجنة توجيهية من ممارسي واجهات برمجة التطبيقات وتجربة المستخدم على تطوير RAML، وهناك نظام بيئي ناشئ من أدوات الطرف الثالث قيد التطوير حول RAML [ 8 ].
  • بدأت شركة MuleSoft في الأصل باستخدام Swagger (المعروف الآن باسم مواصفات OpenAPI )، لكنها قررت أنه الأنسب لتوثيق واجهات برمجة التطبيقات الموجودة، وليس لتصميم واجهات برمجة تطبيقات جديدة من الصفر. وقد تطورت لغة RAML استجابةً للحاجة إلى دعم تصميم واجهات برمجة التطبيقات مسبقًا بلغة موجزة وسهلة الاستخدام [ 9 ].
  • غالبًا ما تكون أوصاف واجهات برمجة التطبيقات (APIs) مطولة ومتكررة، مما قد يجعل فهمها واستخدامها صعبًا، ويبطئ من تبنيها. وقد قدمت لغة RAML ميزات لغوية تدعم الملفات المهيكلة والتوريث، مما يعالج المخاوف المشتركة [ 10 ].

تأسست منظمة جديدة، برعاية مؤسسة لينكس ، تُسمى مبادرة واجهة برمجة التطبيقات المفتوحة (Open API Initiative)، عام ٢٠١٥ بهدف توحيد وصف واجهات برمجة تطبيقات HTTP. وكان من بين الأعضاء المؤسسين عدد من الشركات، منها سمارت بير ، وجوجل ، وآي بي إم ، ومايكروسوفت . [ ١١ ] [ ١٢ ] وقد تبرعت سمارت بير بمواصفات Swagger للمجموعة الجديدة. كما تدرس المجموعة حاليًا استخدام RAML وAPI Blueprint. [ ١٣ ] [ ١٤ ]

مثال

هذا مثال لملف RAML. وكما هو الحال مع YAML، يُظهر التنسيق التداخل.

#%RAML 0.8العنوان : واجهة برمجة تطبيقات الموسيقى العالميةbaseUri : http://example.api.com/{version}الإصدار : v1سمات :- مُصفّحة :معلمات الاستعلام :الصفحات :الوصف : عدد الصفحات المطلوب إرجاعهاالنوع : رقم- مؤمَّن : !include http://raml-example.com/secured.yml/أغاني :هو : [ مُرقّم ، مؤمّن ]يحصل :معلمات الاستعلام :النوع :الوصف : تصفية الأغاني حسب النوعبريد :/{songId} :يحصل :الردود :200 :جسم :application/json :المخطط : |{ "$schema": "http://json-schema.org/schema","النوع": "كائن،""الوصف": "أغنية كلاسيكية"،"ملكيات": {"العنوان": { "النوع": "سلسلة نصية" },"artist": { "type": "string" }},"مطلوب": [ "العنوان", "الفنان" ]}application/xml :يمسح :الوصف : |ستؤدي هذه الطريقة إلى *حذف* أغنية **فردية**

بعض النقاط البارزة:

  • السطر 7، 12: يُعرّف السمات، ويتم استدعاؤها في أماكن متعددة
  • السطر 12: ملف تضمين
  • السطران 13 و14: تعريف نوع بيانات "مورد" "/songs"؛ يستخدم سمات مُعرَّفة مسبقًا.
  • الأسطر 15 و19 و37: تُعرّف طرق HTTP
  • السطر 25، 36: أنواع MIME .

بوابات واجهة برمجة التطبيقات التي تدعم RAML

علاوة على ذلك، يمكنك تحويل مواصفات RAML الخاصة بك إلى OpenAPI أو API Blueprint باستخدام APIMATIC ، مما يتيح لك استخدام بوابات API إضافية.

انظر أيضاً

لغات نمذجة واجهة برمجة تطبيقات HTTP البديلة

ملحوظات

مراجع

  1. "الإعلان عن الإصدار العام من RAML 1.0 | مدونة RAML" . تم الاطلاع عليه بتاريخ 11 أغسطس 2016 .
  2. "RAML 100.o" . GitHub . تم الاطلاع عليه بتاريخ 26 مايو 2017 .
  3. "RAML — لغة نمذجة واجهات برمجة التطبيقات RESTful" . تم الاطلاع عليه بتاريخ 15 يوليو 2014 . 
  4. "RAML أو OpenAPI - ماذا عن كليهما؟ - تكامل DZone" . dzone.com . تم الاطلاع عليه بتاريخ 4 أكتوبر 2017 .
  5. "مجموعة عمل RAML" . مؤرشف من الأصل بتاريخ 2015-12-08 . تم الاطلاع عليه بتاريخ 2015-12-02 .
  6. "RAML - تفاصيل العلامة التجارية" . 26 مايو 2017.
  7. "لماذا تُعدّ RAML أكثر من مجرد مواصفات احتكارية أخرى" . 11 أبريل 2014.
  8. "أدوات تصميم واجهة برمجة التطبيقات من RAML" . 3 مارس 2014.
  9. "Anypoint for APIs: مقابلة مع أوري ساريد" . 25 فبراير 2014.
  10. "مثال على تصميم واجهة برمجة التطبيقات باستخدام RAML" . 11 أبريل 2014.
  11. "أطلقت سمارت بير ومؤسسة لينكس مبادرة واجهة برمجة التطبيقات المفتوحة لتطوير سواغر" . موقع ProgrammableWeb . 10 نوفمبر 2015. مؤرشف من الأصل في 9 نوفمبر 2016. تم الاطلاع عليه في 21 أبريل 2016 .
  12. «مشروع تعاوني جديد لتوسيع مواصفات Swagger لبناء التطبيقات والخدمات المتصلة» . www.linuxfoundation.org . مؤرشف من الأصل بتاريخ 27 أبريل 2016. تم الاطلاع عليه بتاريخ 22 أبريل 2016 .
  13. مونتشوي، إيف دي (14 ديسمبر 2015). "في عام 2016، ستتبلور الحاجة إلى لغة وصفية لواجهة برمجة التطبيقات" . إنفوورلد . تم الاسترجاع في 25 أبريل 2016 .
  14. "بوابة واجهة برمجة تطبيقات أمازون تدعم الآن استيراد تعريفات Swagger" . InfoQ . تم الاطلاع عليه بتاريخ 25 أبريل 2016 .