Usługi SOAP kontra Jakarta REST
Zastąp ciężkie endpointy SOAP/WSDL czystymi zasobami Jakarta REST zwracającymi 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);
}
}
Lżejsze ładunki
JSON jest bardziej kompaktowy niż koperty XML SOAP, redukując przepustowość i narzut parsowania.
Proste adnotacje
@GET, @Path i @Produces zastępują ceremonię WSDL, @WebService i @WebMethod.
Gotowy na mikroserwisy
REST/JSON to standard komunikacji serwis-do-serwisu w architekturach cloud-native.
Szeroko dostępne od Jakarta EE 8 / Java 11
Usługi webowe oparte na SOAP polegają na kontraktach WSDL, marshallingu XML i adnotacjach JAX-WS dodających znaczny narzut. Jakarta REST (dawniej JAX-RS) używa intuicyjnych adnotacji jak @GET, @Path i @Produces do udostępniania REST-owych API JSON. Model programowania jest prostszy, ładunki są mniejsze, a podejście jest zgodne ze sposobem komunikacji nowoczesnych mikroserwisów.