مقدمة إلى REST API - خدمات الويب RESTful

هذه المقالة مقدمة عن خدمات RESTful على الويب ونظرة عامة على REST و HTTP.

بدأت سلسلة من المنشورات حول تطوير واجهة برمجة تطبيقات REST:

  • مقدمة إلى REST API - خدمات الويب RESTful
  • الاختلافات بين الراحة والصابون
  • تطوير واجهة برمجة تطبيقات REST - ما هو العقد الأول (العقد أولاً)؟
  • تطوير واجهة برمجة تطبيقات REST - ما هو الكود أولاً (الكود أولاً)؟
  • REST API - ما هي HATEOAS؟
  • توصيات API REST - أمثلة تصميم خدمات الويب في Java و Spring



REST تعني "نقل حالة التمثيل" (ويكيبيديا: "نقل حالة العرض التقديمي"). هذا هو النهج المعماري الشعبي لإنشاء واجهات برمجة التطبيقات في العالم الحديث.

سوف تتعلم:


  • ما هو الراحة؟
  • ما هو REST API على أساس؟
  • كيف يتم استخدام HTTP عند إنشاء واجهة برمجة تطبيقات REST؟
  • ما هو المورد؟
  • كيف يمكنك تحديد موارد REST API؟
  • ما هي أفضل الممارسات لتطوير واجهة برمجة تطبيقات REST؟

ما هو الراحة؟


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

نظرة عامة HTTP


لنفتتح المتصفح أولاً وانتقل إلى صفحة الويب:



ثم انقر فوق إحدى صفحات النتائج:



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



وانتقل إلى صفحة أخرى:



هذه هي الطريقة التي نتصفحها عادة الويب.

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



بروتوكول HTTP


عند إدخال عنوان URL في المتصفح ، على سبيل المثال www.google.com ، يتم إرسال طلب إلى الخادم إلى الخادم المحدد في عنوان URL. ثم هذا الخادم أشكال ويصدر الجواب. تنسيق هذه الطلبات والاستجابات مهم. يتم تعريف هذه التنسيقات بواسطة بروتوكول HTTP Hyper Text Transfer Protocol .

عند كتابة عنوان URL في المستعرض ، يرسل طلب GET إلى الخادم المحدد. يستجيب الخادم بعد ذلك باستجابة HTTP التي تحتوي على بيانات HTML - لغة توصيف النص التشعبي . المستعرض ثم يتلقى رمز HTML هذا ويعرضه على الشاشة.

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

خدمات HTTP و RESTful


يوفر HTTP طبقة أساسية لإنشاء خدمات الويب. لذلك ، من المهم أن نفهم HTTP. فيما يلي بعض التجريدات الرئيسية.

مورد


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

  • مستخدم محدد
  • مهمة محددة
  • قائمة المهام

الموارد URI


عندما تقوم بتطوير خدمات RESTful ، يجب عليك التركيز على موارد التطبيق. الطريقة التي نحدد بها المورد المراد توفيره هي تعيين معرف URI له ، وهو معرف المورد العالمي. على سبيل المثال:

  • إنشاء مستخدم: POST / المستخدمين
  • حذف المستخدم: DELETE / users / 1
  • الحصول على جميع المستخدمين: الحصول على / المستخدمين
  • الحصول على مستخدم واحد: GET / users / 1

الراحة والموارد


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

إليك كيفية تنفيذ خدمة REST:

  • تنسيق تبادل البيانات : لا توجد قيود. JSON تنسيق شائع جدًا ، على الرغم من أنه يمكن استخدام تنسيقات أخرى مثل XML.
  • النقل : دائما HTTP. REST يستند إلى HTTP بالكامل.
  • تعريف الخدمة : لا يوجد معيار لذلك ، و REST مرنة. قد يكون هذا عيبًا في بعض السيناريوهات ، حيث قد يحتاج التطبيق المستهلكة إلى فهم تنسيقات الطلب والاستجابة. ومع ذلك ، تستخدم لغات تعريف تطبيق الويب مثل WADL (لغة تعريف تطبيق الويب) و Swagger.

يركز REST على الموارد وكيفية إجراء عمليات بكفاءة باستخدام HTTP.

مكونات HTTP


يعرّف HTTP بنية الطلب التالية:

  • سطر الطلب ( سطر الطلب ) - يحدد نوع الرسالة
  • طلب رؤوس ( حقول رأس ) - تميز نص الرسالة ، معلمات الإرسال وغيرها من المعلومات
  • نص الرسالة (النص الأساسي) - اختياري

يحدد HTTP البنية التالية لرسالة الاستجابة:

  • سطر الحالة بما في ذلك رمز الحالة ورسالة السبب
  • حقول رأس الاستجابة
  • نص إضافي للرسالة (النص الأساسي)

طرق طلب HTTP


تشير الطريقة المستخدمة في طلب HTTP إلى الإجراء الذي تريد تنفيذه مع هذا الطلب. أمثلة مهمة:

  • الحصول على: الحصول على معلومات مفصلة الموارد
  • ما بعد : إنشاء مورد جديد
  • وضع : تحديث مورد موجود
  • حذف : حذف الموارد

رمز حالة استجابة HTTP


رمز الحالة موجود دائمًا في استجابة HTTP. أمثلة نموذجية:

  • 200 - النجاح
  • 404 - الصفحة غير موجودة

في هذه المشكلة ، يوجد فيديو للمؤلف.

ملخص


توفر هذه المقالة نظرة عامة على المستوى الأعلى من النمط المعماري REST. يتم التأكيد على حقيقة أن HTTP هو العنصر الأساسي الرئيسي لخدمات REST. HTTP هو بروتوكول يُستخدم لتحديد بنية طلبات المستعرض والردود عليه. لقد رأينا أن HTTP يتعامل بشكل أساسي مع الموارد المتاحة على خوادم الويب. يتم تحديد الموارد باستخدام URI ، ويتم تنفيذ العمليات على هذه الموارد باستخدام الأفعال المحددة بواسطة بروتوكول HTTP.

أخيرًا ، نظرنا في كيفية الاستفادة من خدمات REST بالميزات التي يوفرها HTTP لتوفير الموارد للعالم الخارجي. لا يفرض REST أي قيود على تنسيقات العرض التقديمي للموارد أو على تعريف الخدمة.

قراءة إضافية


أسس الهندسة المعمارية المريحة
تطوير REST APIs

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


All Articles