تتناول هذه المقالة بعض جوانب الاختلافات الأساسية بين REST و SOAP.
عفوًا ... تشبه مقارنتها في الواقع إلى حد ما مقارنة التفاح بالبرتقال ، لأن SOAP عبارة عن تنسيق بروتوكول يستند إلى XML ، في حين أن REST هو منهج معماري.

سوف تتعلم
- ما هو الراحة؟
- ما هو الصابون؟
- ما هو الفرق بين REST و SOAP؟
REST API
هذه هي المقالة الثانية في سلسلة من المقالات حول REST API:
- مقدمة إلى REST API - خدمات الويب RESTful
- الاختلافات بين الراحة والصابون
- تطوير واجهة برمجة تطبيقات REST - ما هو العقد الأول (العقد أولاً)؟
- تطوير واجهة برمجة تطبيقات REST - ما هو الكود أولاً (الكود أولاً)؟
- REST API - ما هي HATEOAS؟
- توصيات API REST - أمثلة تصميم خدمات الويب في Java و Spring
الراحة والصابون
الراحة والصابون ليست قابلة للمقارنة حقا. REST هو أسلوب معماري. SOAP هو تنسيق الرسائل. دعونا نقارن التطبيقات الشائعة لأنماط REST و SOAP.
- مثال تنفيذ RESTful : JSON عبر HTTP
- مثال على تنفيذ SOAP : XML أعلى SOAP عبر HTTP
في المستوى الأعلى ، يقيد SOAP بنية رسائلك ، في حين أن REST هو أسلوب معماري يركز على استخدام HTTP كبروتوكول نقل.
- خصوصية SOAP هو تنسيق تبادل البيانات. مع SOAP ، يكون دائمًا SOAP-XML ، وهو XML الذي يتضمن:
- Envelope (envelope) - هو العنصر الجذر الذي يحدد الرسالة ومساحة الاسم المستخدمة في المستند ،
- رأس (رأس) - يحتوي على سمات الرسالة ، على سبيل المثال: معلومات الأمان أو معلومات توجيه الشبكة ،
- نص (نص) - يحتوي على رسالة متبادلة بين التطبيقات ،
- خطأ - عنصر اختياري يوفر معلومات حول الأخطاء التي حدثت أثناء معالجة الرسالة. يجب أن يتوافق كل من الطلب والاستجابة مع بنية SOAP. - خصوصية REST هو استخدام HTTP كبروتوكول نقل. يتضمن الاستخدام الأمثل للميزات التي يوفرها HTTP - طرق الطلب ، رؤوس الطلبات ، الردود ، رؤوس الاستجابة ، إلخ.
تنسيق الرسائل
- في SOAP ، تستخدم تنسيق SOAP XML للطلبات والاستجابات.
- لا يوجد مثل هذا التنسيق الثابت في REST. يمكنك تبادل الرسائل على أساس XML أو JSON أو أي تنسيق مناسب آخر. JSON هو الأكثر شعبية بين الأشكال المستخدمة.
تعريفات الخدمة
- يستخدم SOAP WSDL (لغة وصف خدمات الويب) ، وهي لغة تستند إلى XML لوصف خدمات الويب والوصول إليها.
- لا تحتوي REST على لغة تعريف الخدمة القياسية. على الرغم من حقيقة أن WADL كانت واحدة من أولى المعايير المقترحة ، إلا أنها ليست ذات شعبية كبيرة. الأكثر شعبية هو استخدام Swagger أو Open API.
نقل
SOAP لا تفرض أي قيود على نوع بروتوكول النقل. يمكنك استخدام بروتوكول الويب HTTP أو MQ.
يتضمن REST أفضل استخدام لبروتوكول نقل HTTP
سهولة التنفيذ
خدمات RESTFful على الويب عادةً ما تكون أسهل في التنفيذ من خدمات الويب المستندة إلى SOAP.
- يستخدم REST عادةً JSON ، وهو أسهل في التحليل والمعالجة. بالإضافة إلى ذلك ، لا يتطلب REST تعريف خدمة لتقديم خدمة ويب.
- ومع ذلك ، في حالة SOAP ، تحتاج إلى تحديد الخدمة الخاصة بك باستخدام WSDL ، وهناك الكثير من الحمل عند معالجة رسائل SOAP-XML وتحليلها.
يوجد أيضًا
فيديو للمؤلف حول هذا الموضوع.
ملخص
في هذه المقالة ، درسنا بالتفصيل الاختلافات بين REST و SOAP.
قراءة إضافية
5 دورات لتعلم خدمات الويب المريحة باستخدام Java و Spring في 201910 نصائح لاختبار API للمبتدئين (SOAP و REST)