تلك التطبيقات المعدات الحاسوبية التي جعلت حياتنا أسهل وأفضل بالعديد من الطرق. نستخدمها نحن في أغلب الأيام، وبعض الأشخاص يجدون أنهم يستخدمون التطبيقات أكثر من التفاعل مع الأشخاص الآخرين.
لكن كيف تتفاعل التطبيقات ببعضها البعض؟ حسنًا، تفعل ذلك من خلال الAPI البرمجية – وهي المفاتيح البرمجية للتطبيقات. ستتعلم ما هي الAPI في هذه المقالة. سنركز بوجه خاص على الAPI الويبية وتصميمها وتطويرها.
ما هو الAPI الويبية؟
تلك الAPI التي صممت للاستخدام عبر الويب. بمعنى آخر، التطبيقات الموادية الويبية والأنظمة والخدمات تستخدم الAPI الويبية لتتبادل المعلومات عبر الإنترنت. إنهم يرسلون طلبات ويحصلون على ردود في أصول مثل الJSON أو الXML.
تلك الAPI الويبية تلعب دور أساسي في التطوير المعداتي الحديث لسببين:
-
التوافق: الAPI متخلفة للتكنولوجيا، ما يعني أنها تسمح للأنظمة المختلفة التحدث بعضها البعض بغير معايير التكنولوجيا المستخدمة. هذا يمكن للمطورين تكامل التطبيقات المختلفة بسهولة.
- التنمية القابلية للتوسعة:
-
المرونة وسهولة التوسع: من خلال اتباع الممارسات القياسية والقواعد المحددة بوضوح، تساعد واجهات برمجة تطبيقات الويب التطبيقات على توسيع وظائفها. كما أنها مرنة بما يكفي للسماح للمطورين بإنشاء تطبيقات ديناميكية.
النهج في تطوير واجهات برمجة تطبيقات الويب
يمكن تطوير واجهات برمجة تطبيقات الويب باستخدام طرق مختلفة استنادًا إلى المتطلبات. فيما يلي بعض النهج المتبعة بشكل شائع:
-
REST – تستخدم واجهات برمجة تطبيقات الويب (REST) بروتوكول HTTP لأداء العمليات. تعمل بطريقة بلا حالة، مما يعني أنه يجب أن تتضمن كل طلب المعلومات اللازمة للمستقبل لمعالجتها والرد عليها.
-
SOAP – بروتوكول الوصول البسيط لكائنات التبادل الإعلامي يستخدم XML لتبادل المعلومات بطريقة منظمة.
-
GraphQL – تستخدم للاستعلام عن وتلاعب بواجهات برمجة التطبيقات.
-
gRPC – إطار عمل لاستدعاء الإجراءات عن بعد يستخدم HTTP/2 لنقل المعلومات.
في الأقسام القادمة، سنستكشف تصميم وتطوير واجهات برمجة التطبيقات، مركزين على واجهات REST كبروتوكول أساسي لمناقشتنا.
فهم المتطلبات والأهداف
في أي عملية تطوير برنامج، من الضروري فهم المتطلبات والحالة المقصودة قبل البدء. يساعدك ذلك على التخطيط وتقدير التكلفة والوقت والموارد الأخرى التي ستحتاجها للمشروع.
تنطبق نفس الفكرة عند بناء واجهات RESTful. تحتاج إلى تحديد ما إذا كانت التطبيقات ستتبادل المعلومات بطريقة لا تحتفظ بالحالة، ما إذا كان يمكن تمثيل الكيانات المعنية على أنها موارد، وما إذا كانت الخدمات مرنة بما يكفي للعمل مع تنسيقات بيانات مختلفة.
تحديد الموارد ونقاط النهاية
تدور واجهات REST حول الموارد، والتي تمثل الكيانات التي تمثل البيانات أو الكائنات في النظام. يتم تحديد كل مورد بواسطة معرف URI فريد يسمى معرف المورد. يمكن الوصول إلى هذه الموارد وتلاعبها عبر نقاط النهاية، وهي عناوين URL محددة تستقبل وتعالج الطلبات من العميل.
توصيات الأفضلية تشير إلى استخدام الأسماء المؤنثة للموارد في نقاط النهاية بدلاً من الأفعال التي قد تشير إلى عملية على المورد.
Considere el siguiente ejemplo: https://api.example.com/products
El endpoint sigue la mejor práctica de usar un sustantivo para el recurso (en este caso, products
). ¿Nota cómo utilicé la forma plural – productos? También es recomendable usar plurales si está trabajando con una colección de objetos.
Sin embargo, el siguiente endpoint https://api.example.com/add-product
no es recomendado porque usa un verbo e intenta describir una acción sobre el recurso. Este enfoque puede volverse complicado para operaciones más complejas.
Otro aspecto importante de la convención de nomenclatura estándar de los endpoints es usar una estructura jerárquica. Esto ayuda a representar claramente la relación entre los recursos.
Por ejemplo: https://api.example.com/categories/{categoryId}/products/{productId}
.
Aquí, definimos un endpoint que mantiene una jerarquía clara entre los recursos de category
y product
.
Uso de Métodos y Códigos de Estado HTTP
En las API REST, HTTP se utiliza para la comunicación entre el cliente y el servidor. HTTP tiene métodos estándar que se utilizan principalmente para realizar operaciones en recursos. A continuación se muestra una lista de estos métodos junto con sus propósitos:
-
GET – Obtener los detalles del recurso. Estos detalles son devueltos por el servidor en el cuerpo del mensaje de respuesta.
-
POST – إنشاء مورد جديد. يتم إرسال تفاصيل المورد الذي سيتم إنشاؤه في جسم رسالة الطلب.
-
PUT – إنشاء أو تحديث مورد، اعتمادًا على توفره. يتم إرسال تفاصيل المورد الذي سيتم إنشاؤه أو تحديثه في جسم رسالة الطلب.
-
DELETE – إزالة مورد.
-
PATCH – تحديث جزئي لمورد. يتم إرسال التغييرات التي سيتم إجراؤها على المورد في جسم رسالة الطلب.
النهج الموصى به لتطوير واجهة برمجة تطبيقات REST محددة بشكل جيد هو استخدام هذه الطرق البيولوجية الصحيحة لأداء العمليات المتكافئة CRUD (الإنشاء، القراءة، التحديث، الحذف) على المورد. كما يجب عليك التأكد من أن واجهة البرمجة تستجيب للعميل برمز حالة HTTP مناسب في جسم رسالة الاستجابة.
تعكس رموز الحالة النهائية لطلب. فيما يلي بعض رموز حالة HTTP الشائعة التي يمكنك استخدامها:
-
200 حسنًا
-
201 تم الإنشاء
-
204 لا محتوى
-
400 طلب سيء
-
401 غير مصرح
-
403 ممنوع
-
404 غير موجود
-
500 خطأ داخلي للمعالج
-
503 خدمة غير متاحة
-
504 نقطة وقت البوابة
استخدم رمز HTTP مناسب ليمكنك معالجة نتيجة الطلب التي يمكن معالجتها نقطة نهاية ال API الخاص بك. يمكنك أيضًا تطوير رمز HTTP خاص لوصف سلوك التطبيق الخاص.
استراتيجيات التنقل
عبر الوقت المتواصل، ستتطور ال API التي تقوم بتطويرها، وسوف تقوم بتغييرها. وهنا حيث يصبح مهماً إستراتيجيات التنقل. يجب أن تضمن أن مستخدمي ال API الموجودين لا يتأثرون بالتغييرات التي تقوم بها.
إبقاء الأصدقاء المختلفة ستجعل قنواتك متوافقة بالإعتماد وستسمح للمستخدمين باستخدام الإصدار المفضل لل API وفقاً للاحتياجات الخاصة بهم. تعلم من هذا المدونة المعلوماتي المفصل على موقع Postmanكيف يمكن أن يكون التنقل مناسبًا لرموز ال API الخاصة بك:
“يجب عليك إصدار نسخة من واجهة برمجة التطبيقات (API) كلما قمت بإجراء تغيير يتطلب من المستخدمين تعديل قاعدة الشيفرة الخاصة بهم للاستمرار في استخدام واجهة برمجة التطبيقات. يُعرف هذا النوع من التغيير باسم “تغيير مكسور” ، ويمكن أن يتم إجراؤه على هياكل بيانات الإدخال والإخراج الخاصة بواجهة برمجة التطبيقات ، وتعليقات النجاح والخطأ ، وآليات الأمان.”
يمكن تنفيذ إصدار API بطرق مختلفة. إليك بعض الطرق:
-
إصدار URI: تضمين رقم الإصدار في مسار URL. على سبيل المثال،
https://api.example.com/v1/products
. -
إصدار باراميتر الاستعلام: تحديد رقم الإصدار كمعامل استعلام في URL. على سبيل المثال،
https://api.example.com/products?version=1
. -
إصدار الرأس: تضمين رقم الإصدار في رؤوس HTTP للطلب. على سبيل المثال، باستخدام رأس مخصص مثل
X-API-Version: 1
. -
تفاوض المحتوى: حدد الإصدار في رأس
Accept
للطلب، غالبًا ما باستخدام أنواع وسائط. على سبيل المثال،Accept: application/vnd.example.v1+json
. -
تضمين الإصدار: ضم رقم الإصدار داخل نوع الوسائط للاستجابة. على سبيل المثال،
application/vnd.example.product-v1+json
.
اعتبارات الأمان
جانب مهم آخر يجب مراعاته عند تطوير واجهة برمجة تطبيقات هو الأمان. فيما يلي بعض النقاط الرئيسية التي يجب تذكرها:
-
نفذ HTTPS لتشفير المعلومات المتبادلة بين العميل والخادم.
-
نفذ المصادقة والتفويض لضمان أن يمكن للمستخدمين ذوي الامتيازات الصحيحة فقط القيام بالعمليات على الموارد. تشمل الطرق الشائعة المصادقة الأساسية، والمصادقة بواسطة الحامل أو الرمز، وJWT، وOAuth 2.0. كما عليك تنفيذ مراقبة الوصول بناءً على الأدوار لإدارة وصول الموارد.
-
تنفيذ تحقيق التحقق والتنظيف لمنع هجمات العروق المعتمة مثل تلقيح الSQL والتكسير الموجه (XSS).
-
تنفيذ قيود المعدل والتوسعة للتحكم في عدد ال solicitudes التي يمكن إجراها موكلًا إلى الserver خلال وقت واحد معين. هذا يساعد في 预防 عبء كبير على الserver.
التوثيق
جزء مهم لكن غالبًا ما يتم تجاهله في تطوير الAPIهو التوثيق. من المهم توثيق تطوير ال API حتى يفهم المستخدمون خصائصه والوظائف.
يتوجب أن يكون التوثيق شاملًا وسهل الفهم ويتبع ممارسات وصلية. أشمل أيضًا أمثلة لجسم ال solicitudes وجسم ال responses، وأيضًا أسماء الأحاليات ال HTTP تستخدم. يمكنك تبعاً لالتوحيد المفتوح ال Open APIلوصف تطوير APIs ال RESTful الخاصة بك.
استراتيجيات الترتيب و
قد تسبب تطوير الAPI الذي تقوم به بالعديد من السجلات في مشاكل في الأداء. من الغير فعال توفير الكميات الكبيرة من البيانات ومن ثم الترتيب أو التصفية.
لتعاليل هذا، يجب أن تتمكن من ترتيب وتصفية السجلات. يجب أيضًا تنفيذ التصفح الصفحي لتجعل عدد السجلات التي تتم استقبالها قليلًا وتحدد حد لتتسهم التنقل والتحليل.
المراقبة والتسجيل والصحة
هذه خيال جيد لتسجيل دراسات طلبات الAPI والاستجابات لمساعدة في التصحيح. المراقبة لاستخدام الAPI ستساعدك على فهم أداء التطبيق العام. والقيام بفحوصات صحية منتظمة سيساعدك على القيام بالتدابير اللازمة إذا كان هناك أي مشاكل. جميع هذه الخطوات ستجعل الAPI أكثر قوة وموثوقية.
الختام
الAPI، وبالتحديد الAPI الويبي، مهم للتطبيقات البرمجية للتواصل عبر الإنترنت.
هذه المقالة شرحت ما هو الAPI الويبي ولماذا يهم وطرق مختلفة لتطويره، مع التركيز على الAPI المتعدد الوظائف. تعلمت أيضًا عن مواضيع رئيسية مثل تحديد الموارد والنقاط النهائية، واستخدام الطرق المعتادة HTTP والأيقونات الحالية، واستراتيجيات التنويع، والأمور التي يتم إخراجها في وثائق التطبيق، والمزيد.
إذا وجدت هذه المقالة مثيرة للاهتمام، فلا تتردد في تفقد مقالاتي الأخرى على freeCodeCamp وتواصل معي على LinkedIn.
Source:
https://www.freecodecamp.org/news/how-to-design-and-develop-web-apis-essential-guidelines/