سؤال

لقد قمت ببعض الأعمال مع تطبيق JAX-RS المرجعي (جيرسي).أعرف إطارين آخرين على الأقل (Restlet & Apache CXF).

سؤالي هو:هل أجرى أي شخص بعض المقارنة بين تلك الأطر، وإذا كان الأمر كذلك، فما هو الإطار الذي توصي به ولماذا؟

هل كانت مفيدة؟

المحلول

FWIW نحن نستخدم Jersey باعتبارها مليئة بالميزات (على سبيل المثال.WADL، وجهات النظر الضمنية، دعم XML/JSON/Atom) لديها مجتمع مطور كبير وحيوي وراءها ولها تأثير رائع التكامل الربيعي.

إذا كنت تستخدم JBoss/SEAM، فقد تجد أن RESTeasy يتكامل بشكل أفضل قليلاً - ولكن إذا كنت تستخدم Spring for Dependency حقن، فإن Jersey يبدو التطبيق الأسهل والأكثر شيوعًا ونشاطًا ووظيفيًا.

نصائح أخرى

ريستليت لديه قائمة واسعة من الامتدادات لـ Spring، وWADL، وXML، وJSON بالإضافة إلى غيرها الكثير، بما في ذلك امتداد JAX-RS API.

وهو أيضًا الإطار الوحيد متوفر في ستة طبعات متسقة:

  • جافا سي
  • جافا إي
  • مجموعة أدوات الويب من جوجل
  • محرك تطبيقات جوجل
  • ذكري المظهر
  • بيئات OSGi

فوائدها الرئيسية هي:

  • واجهة برمجة تطبيقات العميل والخادم المتماثلة تمامًا عندما تم تصميم JAX-RS للمعالجة من جانب الخادم
  • موصلات لبروتوكولات أخرى غير HTTP (تعيين دلالات HTTP) عندما يكون JAX-RS هو HTTP فقط
  • نطاق ميزات أوسع بكثير بما في ذلك التحكم الكامل في توجيه URI عبر Restlet API (ولكن يمكن التكامل مع Servlet إذا لزم الأمر)
  • توفير كامل لدعم NIO

يمكن أن تكون واجهة برمجة تطبيقات JAX-RS خيارًا جيدًا إذا كنت مقيدًا بواجهات برمجة التطبيقات المعتمدة من JCP (فلا تستخدم Spring أو أي امتداد لمشاريع JAX-RS مثل Jersey وRESTeasy!)، ولكن بخلاف ذلك فإن Restlet هو إطار العمل الأكثر نضجًا ( تم إصداره لأول مرة في عام 2005) وسيمنحك، في نسخته 2.0، جميع مزايا التعليقات التوضيحية جنبًا إلى جنب مع إطار عمل قوي وقابل للتوسيع موجه نحو الفصل.

لفترة أطول قائمة الميزات، يرجى مراجعة هذه الصفحة.

مع أطيب التحيات ، جيروم لويفيل

ريستليت ~ المؤسس والمطور الرئيسي ~ http://www.restlet.org

أنا وفريقي نستخدم Restlet على نطاق واسع، ولكن ليس ميزات JAX-RS.أستطيع أن أخبرك أنني معجب جدًا بمطوري ومجتمع Restlet؛إنهم نشيطون للغاية ومتفاعلون ومستجيبون وملتزمون بإطار عمل مستقر وفعال وموثوق وفعال.أنا آسف لأنني لا أستطيع تناول اهتماماتك الأساسية بشكل مباشر ولكن أعتقد أنك قد تجد تجربتي مع Restlet قيمة.

يذكر زميلي سبب استخدامنا لـ RESTeasy لمشروعنا الحالي خدمات الويب RESTful في Java EE مع RESTeasy (JAX-RS):

لم يتم اختيار تطبيقه المرجعي، Jersey، لأننا واجهنا مشكلة في دمجه جيدًا مع EJB3 وSeam 2.0.

نحن نستخدم تطبيق RESTeasy لـ JAX-RS، لأنه لم نواجه أي مشكلة في دمجه مع وحدات JBs وSeam الخاصة بنا.كما أن لديها وثائق كافية.

هناك تطبيق آخر من Apache، لكنني لم أجربه لأنه يستخدم إصدارًا أقدم من JAX-RS.

أخيرًا، هناك إطار عمل آخر لخدمات الويب RESTful لـ Java يُسمى Restlet لكننا لم نفضله لأنه في وقت كتابة هذه السطور، كان يستخدم بنية مخصصة، على الرغم من وجود دعم مناسب لـ JAX-RS قيد التنفيذ.

يبدو أن هناك 4 تطبيقات جيدة لـ JAX-RS، لذلك ربما تكون موافقًا على أي منها.مقابل ما يستحق، وجدت Jersey (1.0.2) رائعًا حقًا حتى الآن.احتياجاتي متواضعة جدًا، وخدمة خلفية بسيطة، والعناية بالسباكة، وما إلى ذلك.وهذا جيرسي يعمل بشكل جيد للغاية.

اكتشفت أن Apache Wink من السهل جدًا العمل معه، ويدعم JAX-RS ويحتوي على العديد من الميزات التي تتجاوز المعايير.

لن أستخدم أي إطار.فقط الذي يأتي مع خادم التطبيقات الخاص بك.إذا كنت تستخدم تفاصيل إطار عمل واحد، فسوف تفقد إمكانية النقل وستكون في جحيم ماذا لو كان بائع خادم التطبيق يتضمن إصدارًا مختلفًا من إطار العمل المفضل لديك.سألتزم بـ jax-ws.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top