Jakarta RESTful Web Services , ( JAX-RS ; anteriormente Java API para RESTful Web Services) es una especificación de Jakarta EE API que brinda soporte para la creación de servicios web de acuerdo con el patrón arquitectónico Representational State Transfer (REST). [1] JAX-RS utiliza anotaciones , introducidas en Java SE 5 , para simplificar el desarrollo y la implementación de clientes de servicios web y puntos finales.
Autor (es) original (es) | Microsistemas solares |
---|---|
Desarrollador (es) | Fundación Eclipse |
Lanzamiento estable | 3.0 / 30 de junio de 2020 |
Repositorio | |
Escrito en | Java |
Sistema operativo | Multiplataforma |
Plataforma | Java |
Tipo | Marco de aplicación |
Licencia | EPL 2.0 o GPL v2 con excepción de Classpath |
Sitio web | proyectos |
A partir de la versión 1.1, JAX-RS es una parte oficial de Java EE 6. Una característica notable de ser una parte oficial de Java EE es que no es necesaria ninguna configuración para comenzar a usar JAX-RS. Para entornos que no son Java EE 6, se requiere una pequeña entrada en el descriptor de implementación web.xml .
Especificación
JAX-RS proporciona algunas anotaciones para ayudar a mapear una clase de recurso (un POJO ) como recurso web. Las anotaciones utilizan el paquete Java javax.ws.rs
. Incluyen:
@Path
especifica la ruta relativa para una clase o método de recurso.@GET
,@PUT
,@POST
,@DELETE
Y@HEAD
especificar el tipo de petición HTTP de un recurso.@Produces
especifica los tipos de medios de Internet de respuesta (utilizados para la negociación de contenido ).@Consumes
especifica los tipos de medios de Internet de solicitud aceptados.
Además, proporciona más anotaciones a los parámetros del método para extraer información de la solicitud. Todas las @*Param
anotaciones toman una clave de alguna forma que se usa para buscar el valor requerido.
@PathParam
enlaza el parámetro del método a un segmento de ruta.@QueryParam
vincula el parámetro del método al valor de un parámetro de consulta HTTP .@MatrixParam
vincula el parámetro de método al valor de un parámetro de matriz HTTP .@HeaderParam
enlaza el parámetro del método a un valor de encabezado HTTP .@CookieParam
vincula el parámetro del método a un valor de cookie .@FormParam
enlaza el parámetro del método a un valor de formulario .@DefaultValue
especifica un valor predeterminado para los enlaces anteriores cuando no se encuentra la clave.@Context
devuelve el contexto completo del objeto (por ejemplo@Context HttpServletRequest request
).
JAX-RS 2.0
En enero de 2011, el JCP formó el grupo de expertos JSR 339 para trabajar en JAX-RS 2.0. Los principales objetivos son (entre otros) una API de cliente común y soporte para Hypermedia siguiendo el principio HATEOAS de REST . En mayo de 2013, alcanzó la etapa de lanzamiento final. [2]
El 22 de agosto de 2017 se publicó la versión final de la especificación JAX-RS 2.1 [3] . Las principales características nuevas compatibles incluyen eventos enviados por el servidor , clientes reactivos y JSON-B. [4]
Implementaciones
Las implementaciones de JAX-RS incluyen: [5]
- Apache CXF , un marco de servicios web de código abierto
- Jersey , la implementación de referencia de Sun (ahora Oracle )
- RESTeasy , la implementación de JBoss
- Restlet
- WebSphere Application Server de IBM :
- Versión 7.0: a través del "Paquete de características para aplicaciones habilitadas para comunicaciones"
- Versión 8.0 en adelante: de forma nativa
- Servidor de aplicaciones WebLogic de Oracle , consulte las notas
- Apache Tuscany ( http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html ), descontinuado
- Marco Cuubez ( https://web.archive.org/web/20190707005602/http://cuubez.com/ )
- Everrest , implementación de Codenvy
- Jello-Framework , Java Application Framework optimizado para Google App Engine, que incluye un potente motor RESTful y un modelo completo de autorización de datos.
Referencias
- ^ Hadley, pág. 1.
- ^ "JSR 339: JAX-RS 2.0: la API de Java para servicios web RESTful" . Proceso de la comunidad Java .
- ^ "JSR 370: API Java para la especificación de servicios web RESTful (JAX-RS 2.1)" . Proceso de la comunidad Java .
- ^ "JSR 367: API Java para enlace JSON (JSON-B)" . Proceso de la comunidad Java .
- ^ Little, Mark (1 de octubre de 2008). "Una comparación de las implementaciones de JAX-RS" .
- Hadley, Marc y Paul Sandoz, eds. (17 de septiembre de 2009). JAX-RS: API de Java para servicios web RESTful (versión 1.1), proceso comunitario de Java
enlaces externos
- Página web oficial
Tutoriales
- https://javabrains.io/courses/javaee_jaxrs/
- http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html
- http://www.vogella.com/tutorials/REST/article.html
- http://www.mkyong.com/tutorials/jax-rs-tutorials/
- http://www.coderpanda.com/jax-rs-tutorial/
- http://howtodoinjava.com/restful-web-service/