Services web SOAP vs Jakarta REST
Remplace les lourds endpoints SOAP/WSDL par des ressources Jakarta REST propres qui retournent du 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 plus légers
JSON est plus compact que les enveloppes XML SOAP, réduisant la bande passante et la surcharge d'analyse.
Annotations simples
@GET, @Path et @Produces remplacent la cérémonie WSDL, @WebService et @WebMethod.
Prêt pour les microservices
REST/JSON est le standard pour la communication inter-services dans les architectures cloud-native.
Disponible depuis Jakarta EE 8 / Java 11
Les services web basés sur SOAP dépendent des contrats WSDL, du marshalling XML et des annotations JAX-WS qui ajoutent une surcharge significative. Jakarta REST (anciennement JAX-RS) utilise des annotations intuitives comme @GET, @Path et @Produces pour exposer des APIs RESTful en JSON. Le modèle de programmation est plus simple, les payloads sont plus petits et l'approche s'aligne avec la façon dont les microservices modernes communiquent.