Servicios web SOAP vs Jakarta REST
Reemplaza los pesados endpoints SOAP/WSDL por recursos Jakarta REST limpios que retornan JSON.
@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;
}
}
@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);
}
}
Payloads más ligeros
JSON es más compacto que los envelopes XML de SOAP, reduciendo el ancho de banda y la sobrecarga de análisis.
Anotaciones simples
@GET, @Path y @Produces reemplazan la ceremonia de WSDL, @WebService y @WebMethod.
Listo para microservicios
REST/JSON es el estándar para la comunicación entre servicios en arquitecturas cloud-native.
Ampliamente disponible desde Jakarta EE 8 / Java 11
Los servicios web basados en SOAP dependen de contratos WSDL, marshalling XML y anotaciones JAX-WS que añaden una sobrecarga significativa. Jakarta REST (anteriormente JAX-RS) usa anotaciones intuitivas como @GET, @Path y @Produces para exponer APIs RESTful en JSON. El modelo de programación es más simple, los payloads son más pequeños y el enfoque se alinea con la forma en que los microservicios modernos se comunican.