SOAP-Webservices vs. Jakarta REST
Ersetze schwerfällige SOAP/WSDL-Endpunkte durch saubere Jakarta-REST-Ressourcen, die JSON zurückgeben.
@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);
}
}
Leichtere Nutzlasten
JSON ist kompakter als SOAP-XML-Envelopes und reduziert Bandbreite sowie Parse-Overhead.
Einfache Annotationen
@GET, @Path und @Produces ersetzen den Aufwand von WSDL, @WebService und @WebMethod.
Microservice-bereit
REST/JSON ist der Standard für Service-zu-Service-Kommunikation in Cloud-nativen Architekturen.
Weitgehend verfügbar seit Jakarta EE 8 / Java 11
SOAP-basierte Webservices stützen sich auf WSDL-Verträge, XML-Marshalling und JAX-WS-Annotationen, die erheblichen Overhead erzeugen. Jakarta REST (ehemals JAX-RS) verwendet intuitive Annotationen wie @GET, @Path und @Produces, um RESTful-JSON-APIs bereitzustellen. Das Programmiermodell ist einfacher, die Nutzlasten sind kleiner, und der Ansatz entspricht der Kommunikationsweise moderner Microservices.