خدمات الويب SOAP مقابل Jakarta REST
استبدل نقاط نهاية SOAP/WSDL الثقيلة بموارد Jakarta REST نظيفة تُرجع JSON.
مقارنة الكود
✕ Java EE
@WebService
public class UserWebService {
@WebMethod
public UserResponse getUser(
@WebParam(name = "id") String id) {
User user = findUser(id);
UserResponse res = new UserResponse();
res.setId(user.getId());
res.setName(user.getName());
return res;
}
}
✓ Jakarta EE 8+
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
@Inject
UserService userService;
@GET
@Path("/{id}")
public User getUser(@PathParam("id") String id) {
return userService.findById(id);
}
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
حمولات أخف
JSON أكثر إيجازاً من مظاريف SOAP XML مما يقلل النطاق الترددي وتكلفة التحليل.
تعليقات توضيحية بسيطة
@GET و @Path و @Produces تستبدل طقوس WSDL و @WebService و @WebMethod.
جاهز للخدمات المصغّرة
REST/JSON هو المعيار للتواصل بين الخدمات في البنى السحابية الأصلية.
الأسلوب القديم
JAX-WS / SOAP
الأسلوب الحديث
Jakarta REST / JSON
منذ JDK
11
الصعوبة
متوسط
دعم JDK
خدمات الويب SOAP مقابل Jakarta REST
متاح
متاح على نطاق واسع منذ Jakarta EE 8 / Java 11
كيف يعمل
تعتمد خدمات الويب القائمة على SOAP على عقود WSDL وتسلسل XML وتعليقات JAX-WS التوضيحية التي تضيف تكلفة كبيرة. تستخدم Jakarta REST تعليقات توضيحية بديهية مثل @GET و @Path و @Produces لكشف واجهات برمجية RESTful بـ JSON. نموذج البرمجة أبسط والحمولات أصغر والنهج يتوافق مع كيفية تواصل الخدمات المصغّرة الحديثة.
توثيق ذو صلة