مدخل الى APIs
بقلم(عذاري المطيري)
ما هي APIs؟
مصطلح API هي اختصار لـ "Application Programming Interface" ، ومن المحتمل جدًا أنك رأيته بالفعل عدة مرات في مقالات مختلفة. عادةً ما تكون هذه الواجهة عبارة عن مجموعة من الوظائف الملائمة التي تتيح لك الوصول إلى خدمة وطلب بيانات معينة منها. لكن دعونا نلقي نظرة فاحصة على كل شيء.
يمكن إعطاء API التعريف التالي:
API هي عبارة عن تكوينات يتم توفيرها في لغات البرمجة للسماح للمطورين بإنشاء وظائف معقدة بسهولة أكبر. توفر واجهات برمجة التطبيقات طريقة آمنة وموحدة للتطبيقات للعمل مع بعضها البعض وتقديم المعلومات أو الوظائف المطلوبة دون تدخل المستخدم. بمعنى العام وهو وسيط برمجي يسمح لتطبيقين بالتحدث مع بعضهما البعض. على سبيل المثال في كل مرة تستخدم فيها تطبيقًا مثل Facebook ، أو ترسل رسالة فورية ، أو تتحقق من الطقس على هاتفك ، فأنت تستخدم واجهة برمجة تطبيقات.
كيف تعمل واجهات برمجة التطبيقات APIs
قد لا تدرك ذلك ، لكنك ربما تستخدم بالفعل واجهة برمجة تطبيقات بانتظام. متى كانت آخر مرة منحك فيها أحد مواقع الويب خيار تسجيل الدخول بحسابك على Google أو Facebook؟ ماذا عن خيار الدفع باستخدام Paypal؟ هل استخدمت موقع حجز السفر مؤخرًا؟ هل نظرت إلى تطبيق الطقس على هاتفك هذا الصباح؟ إذا أجبت بنعم على أي من هذه الأسئلة ، فقد استخدمت واجهة برمجة التطبيقات (API). إنها أدوات اتصال.
قبل الانتقال إلى المزيد من الأمور التقنية ، دعونا أولاً نقدم امثلة بسيطًة من الحياة الواقعية:
فكر في إمدادات الكهرباء في منزلك أو شقتك أو أي مساكن أخرى. إذا كنت ترغب في استخدام جهاز في منزلك ، فقم بتوصيله بمقبس توصيل وهو يعمل. لا تحاول توصيله مباشرة بمصدر الطاقة - فإن القيام بذلك سيكون غير فعال حقًا ، وإذا لم تكن كهربائيًا ، فمن الصعب والخطير المحاولة.
بالطريقة نفسها افترض أنك ستطلب توصيل بيتزا. لديك قائمة يمكنك من خلالها اختيار البيتزا التي تريدها والاتصال بخدمة التوصيل لتقديم طلبك. سيعطيها عامل التشغيل للطهاة في المطبخ حيث سيتم خبز البيتزا الخاصة بك ثم إحضارها إليك. هذا مثال على خدمة مبنية على أساس API ، وهي القائمة.
مثال كلاسيكي على API هو خرائط Google. يمكن لأي مبرمج وضع خريطة لأي موقع بالإعدادات اللازمة على الموقع باستخدام وظائف واجهة برمجة التطبيقات الملائمة ، والتي تتضمن تقريبًا مجموعة كاملة من الإعدادات المتاحة لمستخدمي خدمة رسم الخرائط.
يمكنك التفكير في عملية استخدام واحد في APIs على أنها تتكون من ثلاثة أجزاء:
المستخدم (User): الشخص الذي يقدم طلبًا
العميل (Client): الكمبيوتر او التطبيق(Application) الذي يرسل الطلب إلى الخادم
الخادم (Server): الكمبيوتر الذي يستجيب للطلب.
تتكون واجهات برمجة التطبيقات من مكونين رئيسيين:
• تخصيص:
المواصفات الفنية التي تصف خيارات تبادل البيانات بين الحلول مع المواصفات التي تم إجراؤها في شكل طلب للمعالجة وبروتوكولات تسليم البيانات.
• واجهه المستخدم:
تضمن الواجهة الاتصال بين تطبيقين.
يمكنك التفكير في APls كعقد يحدد هذا العقد كيف يمكن للمستخدمين الاتصال بالبرنامج ويشمل ما يلي:
• نوع العمليات التي يمكن للمستخدمين القيام بها.
• نوع بيانات الإدخال.
• نوع بيانات الإخراج.
هناك أربع طرق مختلفة يمكن أن تعمل بها واجهات برمجة التطبيقات اعتمادًا على وقت إنشائها وسبب إنشائها:
واجهات برمجة تطبيقات SOAP
تستخدم واجهات برمجة التطبيقات (API) بروتوكول الوصول إلى الكائنات البسيط. تبادل الرسائل بين العميل والخادم باستخدام XML. هذه واجهة برمجة تطبيقات أقل مرونة كانت أكثر شيوعًا في الماضي.
واجهات برمجة تطبيقات RPC
تسمى واجهات برمجة التطبيقات (API) هذه استدعاءات الإجراءات البعيدة. يكمل العميل وظيفة (أو إجراء) على الخادم ، ويرسل الخادم الإخراج مرة أخرى إلى العميل.
واجهات برمجة تطبيقات Websocket
Websocket API هو تطوير واجهة برمجة تطبيقات ويب حديث آخر يستخدم كائنات JSON لتمرير البيانات. تدعم واجهة WebSocket API الاتصال ثنائي الاتجاه بين تطبيقات العميل والخادم. يمكن للخادم إرسال رسائل رد الاتصال للعملاء المتصلين ، مما يجعله أكثر كفاءة من REST API.
واجهات برمجة تطبيقات REST
هذه هي واجهات برمجة التطبيقات الأكثر شيوعًا ومرونة الموجودة على الويب اليوم. يرسل العميل الطلبات إلى الخادم كبيانات. يستخدم الخادم إدخال العميل هذا لبدء الوظائف الداخلية وإرجاع بيانات الإخراج إلى العميل. دعونا نلقي نظرة على REST APIs بمزيد من التفاصيل أدناه.
ما هي REST APIs؟
REST هو اختصار لـ “REpresentational State Transfer” تعني النقل التمثيلي للدولة. بشكل عام هو أسلوب معماري للبرامج يصف واجهة موحدة بين مكونات منفصلة ماديًا ، غالبًا عبر الإنترنت في بنية خادم العميل.
يحدد REST مجموعة من الوظائف مثل GET و PUT و DELETE وما إلى ذلك التي يمكن للعملاء استخدامها للوصول إلى بيانات الخادم. العملاء والخوادم يتبادلون البيانات باستخدام HTTP.
الميزة الرئيسية لـ REST API هي انعدام الجنسية. يعني انعدام الجنسية أن الخوادم لا تحفظ بيانات العميل بين الطلبات. تشبه طلبات العميل إلى الخادم عناوين URL التي تكتبها في متصفحك لزيارة أحد مواقع الويب. الاستجابة من الخادم هي بيانات عادية ، بدون العرض الرسومي النموذجي لصفحة الويب.
ما هي أنواع واجهات برمجة التطبيقات؟
يتم تصنيف واجهات برمجة التطبيقات وفقًا لبنيتها ونطاق استخدامها. لذلك دعونا نلقي نظرة على نطاق الاستخدام.
واجهات برمجة التطبيقات الخاصة (Private APIs)
هذه داخلية لمؤسسة وتستخدم فقط لتوصيل الأنظمة والبيانات داخل الشركة.
واجهات برمجة التطبيقات العامة(Public APIs)
هذه مفتوحة للجمهور ويمكن استخدامها من قبل أي شخص. قد يكون هناك أو لا يكون هناك بعض التخويلات والتكلفة المرتبطة بهذه الأنواع من واجهات برمجة التطبيقات.
واجهات برمجة التطبيقات للشريك (Partner APIs)
لا يمكن الوصول إليها إلا من قبل المطورين الخارجيين المعتمدين لمساعدة الشراكات بين الأعمال التجارية.
واجهات برمجة التطبيقات المركبة (Composite APIs)
تجمع بين اثنين أو أكثر من واجهات برمجة التطبيقات المختلفة لتلبية متطلبات أو سلوكيات النظام المعقدة.