خدمات الويب RESTful في جاكرتا
خدمات الويب RESTful من جاكرتا ( JAX-RS ؛ المعروفة سابقًا باسم Java API لخدمات الويب RESTful ) هي مواصفات واجهة برمجة تطبيقات جاكرتا EE ، توفر الدعم لإنشاء خدمات الويب وفقًا لنمط REST المعماري. [ 1 ] تستخدم JAX-RS التعليقات التوضيحية ، التي تم تقديمها في Java SE 5 ، لتبسيط تطوير ونشر عملاء ونقاط نهاية خدمات الويب.
ابتداءً من الإصدار 1.1، أصبح JAX-RS جزءًا رسميًا من Java EE 6. ومن أبرز مزايا كونه جزءًا رسميًا من Java EE أنه لا يتطلب أي إعدادات لبدء استخدامه. أما في بيئات غير Java EE 6، فيلزم إضافة سطر صغير في ملف وصف النشر web.xml .
مواصفة
توفر JAX-RS بعض التعليقات التوضيحية للمساعدة في ربط فئة مورد (كائن POJO ) كمورد ويب. تستخدم هذه التعليقات حزمة Javajakarta.ws.rs (كانت تُسمى سابقًا javax.ws.rsولكن أُعيد تسميتها في 19 مايو 2019 [ 2 ] ). وهي تشمل:
@Pathيحدد المسار النسبي لفئة أو طريقة مورد.@GETتحدد ,@POST,@PUT,@PATCH(منذ JAX-RS 2.1),@DELETE,@HEADو (منذ JAX-RS 1.1) نوع طلب HTTP لمورد ما.@OPTIONS@Producesيحدد أنواع وسائط الإنترنت للاستجابة (المستخدمة للتفاوض على المحتوى ).@Consumesيحدد أنواع وسائط الإنترنت المقبولة للطلب.
بالإضافة إلى ذلك، يوفر هذا النظام تعليقات توضيحية إضافية لمعاملات الطريقة لاستخراج المعلومات من الطلب. @*Paramوتأخذ جميع التعليقات التوضيحية مفتاحًا من نوع ما يُستخدم للبحث عن القيمة المطلوبة.
@PathParamيربط معلمة الطريقة بجزء من المسار.@QueryParamيربط معلمة الطريقة بقيمة معلمة استعلام HTTP .@MatrixParamيربط معلمة الطريقة بقيمة معلمة مصفوفة HTTP .@HeaderParamيربط معلمة الطريقة بقيمة رأس HTTP .@CookieParamيربط معلمة الطريقة بقيمة ملف تعريف الارتباط .@FormParamيربط معلمة الطريقة بقيمة النموذج .@DefaultValueيحدد قيمة افتراضية للروابط المذكورة أعلاه عندما لا يتم العثور على المفتاح.@Contextيعيد السياق الكامل للكائن (على سبيل المثال@Context HttpServletRequest request).
JAX-RS 2.0
في يناير 2011، شكّلت لجنة JCP فريق خبراء JSR 339 للعمل على JAX-RS 2.0. وتشمل الأهداف الرئيسية (من بين أمور أخرى) واجهة برمجة تطبيقات عميل مشتركة ودعم الوسائط المتعددة الفائقة وفقًا لمبدأ HATEOAS الخاص بـ REST . وفي مايو 2013، وصل المشروع إلى مرحلة الإصدار النهائي. [ 3 ]
في 22 أغسطس 2017، تم نشر الإصدار النهائي من مواصفات JAX-RS 2.1 [ 4 ] . تشمل الميزات الجديدة الرئيسية المدعومة الأحداث المرسلة من الخادم ، والعملاء التفاعليين ، وJSON-B. [ 5 ]
التطبيقات
تتضمن تطبيقات JAX-RS ما يلي: [ 6 ]
- أباتشي سي إكس إف ، إطار عمل مفتوح المصدر لخدمات الويب
- جيرسي ، التطبيق المرجعي من شركة صن (الآن أوراكل )
- RESTeasy ، تطبيق JBoss
- ريسليت
- خادم تطبيقات WebSphere من IBM :
- الإصدار 7.0: عبر "حزمة الميزات للتطبيقات التي تدعم الاتصالات"
- الإصدار 8.0 وما بعده: أصليًا
- خادم تطبيقات WebLogic من Oracle ، انظر الملاحظات
- أباتشي توسكاني ( http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html )، تم إيقافه
- إطار عمل Cuubez ( https://web.archive.org/web/20190707005602/http://cuubez.com/ )
- إيفرست ، تطبيق كودنفي
- Jello-Framework ، إطار عمل لتطبيقات جافا مُحسَّن لمحرك تطبيقات جوجل، ويتضمن محرك RESTful قوي ونموذج شامل لتفويض البيانات.
- Apache TomEE ، إضافة إلى Apache Tomcat
مراجع
- ↑ هادلي، ص 1.
- ↑ "إعادة تسمية حزمة الالتزام على GitHub" . GitHub .
- ↑ "JSR 339: JAX-RS 2.0: واجهة برمجة تطبيقات جافا لخدمات الويب RESTful" . عملية مجتمع جافا .
- ↑ "JSR 370: مواصفات واجهة برمجة تطبيقات جافا لخدمات الويب RESTful (JAX-RS 2.1)" . عملية مجتمع جافا .
- ↑ "JSR 367: واجهة برمجة تطبيقات جافا لربط JSON (JSON-B)" . عملية مجتمع جافا .
- ↑ ليتل، مارك (1 أكتوبر 2008). "مقارنة بين تطبيقات JAX-RS" .
- هادلي، مارك وبول ساندوز، محرران. (17 سبتمبر 2009). JAX-RS: واجهة برمجة تطبيقات جافا لخدمات الويب RESTful (الإصدار 1.1)، عملية مجتمع جافا
روابط خارجية
دروس تعليمية
- https://javabrains.io/courses/javaee_jaxrs/ مؤرشف بتاريخ ٢٥ مايو ٢٠١٩ في أرشيف الإنترنت (Wayback Machine)
- http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html
- http://www.vogella.com/tutorials/REST/article.html
- http://www.mkyong.com/tutorials/jax-rs-tutorials/
- http://www.coderpanda.com/jax-rs-tutorial/
- https://www.javavogue.com/2015/03/java-jerseyjax-rs-tutorials/
- http://howtodoinjava.com/restful-web-service/
- https://jakarta.ee/learn/starter-guides/how-to-build-a-restful-web-service/
- https://jakarta.ee/learn/starter-guides/how-to-secure-a-restful-web-service/
- https://jakarta.ee/learn/docs/jakartaee-tutorial/current/websvcs/rest/rest.html
- https://jakarta.ee/learn/specification-guides/restful-web-services-explained/
- منصة جافا للمؤسسات
- واجهة برمجة تطبيقات جافا لـ XML
- مواصفات خدمة الويب
