JAX-RS
JAX-RS est une spécification pour l'implémentation de services Web REST en Java, actuellement définie par le JSR-370 . Il fait partie des technologies Java EE , actuellement définies par le JSR 366 .
Jersey (livré avec GlassFish et Payara) est l'implémentation de référence JAX-RS, mais il existe d'autres implémentations telles que RESTEasy (livré avec JBoss EAP et WildFly) et Apache CXF (livré avec TomEE et WebSphere).
Cadre de printemps
Le Spring Framework est un cadre complet qui vous permet de créer des applications Java d'entreprise. Les fonctionnalités REST sont fournies par le module Spring MVC (le même module qui fournit des fonctionnalités de contrôleur de vue de modèle ). Ce n'est pas une implémentation JAX-RS et peut être considéré comme une alternative Spring à la norme JAX-RS.
L'écosystème Spring propose également un large éventail de projets de création d'applications d'entreprise, couvrant la persistance, la sécurité, l'intégration aux réseaux sociaux, le traitement par lots, etc.
Exemples
Considérez le contrôleur de ressources suivant à l'aide de l'API JAX-RS:
@Path("/greetings")
public class JaxRsController {
@GET
@Path("/{name}")
@Produces(MediaType.TEXT_PLAIN)
public Response greeting(@PathParam("name") String name) {
String greeting = "Hello " + name;
return Response.ok(greeting).build();
}
}
L'implémentation équivalente utilisant l'API Spring MVC serait:
@RestController
@RequestMapping("/greetings")
public class SpringRestController {
@RequestMapping(method = RequestMethod.GET,
value = "/{name}",
produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<?> greeting(@PathVariable String name) {
String greeting = "Hello " + name;
return new ResponseEntity<>(greeting, HttpStatus.OK);
}
}
Utilisation de Spring Boot et Jersey
Spring Boot fournit le spring-boot-starter-jersey
module qui vous permet d'utiliser le modèle de programmation JAX-RS pour les points de terminaison REST au lieu de Spring MVC. Cela fonctionne assez bien avec Jersey 2.x.
Pour un exemple complet de création d'une application Web avec Jersey 2.x et Spring Boot 1.4.x, reportez-vous à cette réponse .