Web Service SOAP vs Jakarta REST
Sostituisci i pesanti endpoint SOAP/WSDL con pulite risorse Jakarta REST che restituiscono 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);
}
}
Payload più leggeri
JSON è più compatto degli involucri XML SOAP, riducendo la larghezza di banda e l'overhead di parsing.
Annotazioni semplici
@GET, @Path e @Produces sostituiscono la cerimonia di WSDL, @WebService e @WebMethod.
Pronto per microservizi
REST/JSON è lo standard per la comunicazione servizio-a-servizio nelle architetture cloud-native.
Ampiamente disponibile da Jakarta EE 8 / Java 11
I web service basati su SOAP si basano su contratti WSDL, marshalling XML e annotazioni JAX-WS che aggiungono un overhead significativo. Jakarta REST (ex JAX-RS) usa annotazioni intuitive come @GET, @Path e @Produces per esporre API RESTful JSON. Il modello di programmazione è più semplice, i payload sono più piccoli e l'approccio si allinea con il modo in cui i moderni microservizi comunicano.