JAX-RS
JAX-RS - це специфікація для реалізації веб-служб REST на Java, визначена в даний час JSR-370 . Вона є частиною технологій Java EE , визначених в даний час JSR 366 .
Джерсі (поставляється разом з GlassFish та Payara) є базовою реалізацією JAX-RS, проте є й інші реалізації, такі як RESTEasy (поставляється з JBoss EAP та WildFly) та Apache CXF (поставляється разом з TomEE та WebSphere).
Весняні рамки
Spring Framework є повною структурою , яка дозволяє створювати корпоративні програми Java. Можливості REST надаються модулем Spring MVC (той же модуль, який забезпечує можливості контролера перегляду моделі ). Це не реалізація JAX-RS і може розглядатися як весна альтернатива стандарту JAX-RS.
Екосистема Spring також пропонує широкий спектр проектів для створення корпоративних додатків, що охоплюють стійкість, безпеку, інтеграцію з соціальними мережами, пакетну обробку тощо.
Приклади
Розглянемо наступний контролер ресурсів за допомогою 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();
}
}
Еквівалентною реалізацією за допомогою API Spring MVC буде:
@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);
}
}
Використання весняного черевика та Джерсі
Spring Boot надає spring-boot-starter-jersey
модуль, що дозволяє використовувати модель програмування JAX-RS для кінцевих точок REST замість Spring MVC. Він добре працює з Джерсі 2.x.
Повний приклад створення веб-програми за допомогою Jersey 2.x та Spring Boot 1.4.x див. У цій відповіді .