REST API - ما هي HATEOAS؟

في هذه المقالة ، ستستمر في استكشاف REST API والتعرف على HATEOAS.

عند عرض صفحة ويب ، يمكنك عرض البيانات الموجودة على الصفحة وتنفيذ الإجراءات معها.

ماذا عن REST API؟ عادةً ، عند طلب مورد REST ، يمكنك الحصول على معلومات المورد مرة أخرى. ماذا عن إرسال العمليات التي يمكنك القيام بها مع المورد في الاستجابة؟



سوف تتعلم:


  • ما هي الهيتواس؟
  • لماذا تحتاج إلى استخدام HATEOAS؟
  • متى يجب استخدام HATEOAS؟

REST API


هذه هي المقالة الخامسة في سلسلة من المقالات حول REST API:


ماذا يعني HATEOAS؟


يعني مصطلح HATEOAS عبارة "Hypermedia A s The Engine O f a pplication S tate" (Hypermedia كمحرك لحالة التطبيق). لفهم هذا بشكل أعمق ، نحتاج أولاً إلى فهم معنى الوسائط التشعبية. ألق نظرة على صفحة الويب التالية:



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

  • الضغط على الأزرار (أخضر "استنساخ" أو "تنزيل" (تنزيل)
  • النقر على علامات التبويب (على سبيل المثال ، لعرض "المشكلات")
  • وغير ذلك الكثير

الآن دعونا نرى كيف تتصرف واجهات برمجة التطبيقات (REST) ​​الخاصة بنا:

إذا نظرت إلى طلب GET نموذجي إلى خادم RESTful مثل هذا:



طلب الحصول على المضيف المحلي : 8080 / يتلقى المستخدمون مجموعة بيانات من ثلاثة مستخدمين في هذه الحالة. عن طريق إرسال طلب باستخدام GET localhost : 8080 / users / 1 ، ستتلقى فقط معلومات عن المستخدم الأول. كقاعدة عامة ، عندما نقوم بتنفيذ طلب REST ، نحصل على البيانات فقط ، وليس أي إجراءات معهم. هذا هو المكان الذي تملأ فيه HATEOAS الفجوة. لا يسمح لك طلب HATEOAS بإرسال البيانات فحسب ، بل يشير أيضًا إلى الإجراءات ذات الصلة:



كان هذا المثال بتنسيق JSON. سيبدو تنسيق XML لمثال آخر بالشكل التالي:



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

  • رقم الحساب وبيانات الرصيد
  • الروابط التي توفر إجراءات للإيداع / السحب / النقل / الإغلاق

باستخدام HATEOAS ، يعطيني طلب مورد REST كلاً من البيانات والإجراءات المتعلقة بالبيانات.

لماذا نحتاج إلى HATEOAS؟


السبب الأكثر أهمية ل HATEOAS هو اقتران فضفاض. إذا احتاج مستهلك خدمة REST إلى تشفير جميع عناوين URL الخاصة بالمورد ، فهذا يرتبط ارتباطًا وثيقًا بتنفيذ خدمتك. بدلاً من ذلك ، إذا قمت بإرجاع عناوين URL التي يمكن استخدامها في الإجراءات ، فسيتم ربطها بشكل فضفاض. لا يوجد اعتماد صارم على هيكل URI ، كما هو موضح ويستخدم في الاستجابة. بعض المواضيع المهمة المتعلقة بـ HATEOAS:

HAL - لغة تطبيق النص التشعبي


عند تطوير خدمة RESTful ، يجب عليك تحديد كيفية إرجاع البيانات والروابط التي تطابق الطلب. HAL هو تنسيق يوفر طريقة بسيطة ومتسقة للارتباط التشعبي بين الموارد في واجهة برمجة تطبيقات REST. هنا مثال:



مع HAL ، لديك عدة فئات من المشاهدات:

  • الروابط : يشار إليها على أنها مزيج
  • الهدف - المحدد باعتباره URI
  • العلاقة - الاسم
  • الموارد المضمنة : الموارد الأخرى الموجودة في مورد REST هذا
  • الحالة: بيانات الموارد الفعلية

إذا كنت تستخدم Spring Framework لتطوير خدمة REST ، فإن Spring HATEOAS هو آلية جيدة لخدمتك.

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

ملخص


في هذه المقالة ، نظرنا إلى معنى HATEOAS.

باستخدام HATEOAS ، لا تُرجع الردود على طلبات REST البيانات فحسب ، ولكن أيضًا الإجراءات التي يمكن تنفيذها على المورد.

هذا يساعد على جعل التطبيقات إلى جانب فضفاضة.

قراءة إضافية


REST + MongoDB + HATEOAS؟

خدمات الراحة في فصل الربيع

Spring HATEOAS: واجهات برمجة التطبيقات للوسائط التشعبية مع Spring (أضافها المترجم)

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


All Articles