Jakarta RESTful Web Services - Jakarta RESTful Web Services
Autor (es) original (is) | Sun Microsystems |
---|---|
Desenvolvedor (s) | Eclipse Foundation |
Versão estável | 3.0 / 30 de junho de 2020
|
Repositório | |
Escrito em | Java |
Sistema operacional | Plataforma cruzada |
Plataforma | Java |
Modelo | Framework de aplicação |
Licença | EPL 2.0 ou GPL v2 com exceção do Classpath |
Local na rede Internet |
projects |
Jakarta RESTful Web Services , ( JAX-RS ; anteriormente Java API para RESTful Web Services) é uma especificação Jakarta EE API que fornece suporte na criação de serviços da web de acordo com o padrão de arquitetura Representational State Transfer (REST). JAX-RS usa anotações , introduzidas no Java SE 5 , para simplificar o desenvolvimento e implementação de clientes de serviço da web e terminais.
A partir da versão 1.1, JAX-RS é uma parte oficial do Java EE 6. Uma característica notável de ser uma parte oficial do Java EE é que nenhuma configuração é necessária para começar a usar JAX-RS. Para ambientes não Java EE 6, uma pequena entrada no descritor de implementação web.xml é necessária.
Especificação
JAX-RS fornece algumas anotações para auxiliar no mapeamento de uma classe de recurso (um POJO ) como um recurso da web. As anotações usam o pacote Java jakarta.ws.rs
(anteriormente era, javax.ws.rs
mas foi renomeado em 19 de maio de 2019). Eles incluem:
-
@Path
especifica o caminho relativo para uma classe de recurso ou método. -
@GET
,@PUT
,@POST
,@DELETE
E@HEAD
especificar o tipo de solicitação HTTP de um recurso. -
@Produces
especifica os tipos de mídia da Internet de resposta (usados para negociação de conteúdo ). -
@Consumes
especifica os tipos de mídia de Internet de solicitação aceita.
Além disso, ele fornece anotações adicionais aos parâmetros do método para extrair informações da solicitação. Todas as @*Param
anotações assumem uma chave de alguma forma que é usada para pesquisar o valor requerido.
-
@PathParam
vincula o parâmetro do método a um segmento de caminho. -
@QueryParam
associa o parâmetro do método ao valor de um parâmetro de consulta HTTP . -
@MatrixParam
vincula o parâmetro do método ao valor de um parâmetro de matriz HTTP . -
@HeaderParam
vincula o parâmetro do método a um valor de cabeçalho HTTP . -
@CookieParam
vincula o parâmetro do método a um valor de cookie . -
@FormParam
vincula o parâmetro do método a um valor de formulário . -
@DefaultValue
especifica um valor padrão para as ligações acima quando a chave não é encontrada. -
@Context
retorna todo o contexto do objeto (por exemplo@Context HttpServletRequest request
).
JAX-RS 2.0
Em janeiro de 2011, o JCP formou o grupo de especialistas JSR 339 para trabalhar no JAX-RS 2.0. Os principais alvos são (entre outros) uma API de cliente comum e suporte para Hipermídia seguindo o princípio HATEOAS de REST . Em maio de 2013, atingiu a fase de lançamento final.
Em 22-08-2017, a versão final da especificação JAX-RS 2.1 foi publicada. Os principais novos recursos suportados incluem eventos enviados pelo servidor , clientes reativos e JSON-B.
Implementações
As implementações de JAX-RS incluem:
- Apache CXF , uma estrutura de serviço da Web de código aberto
- Jersey , a implementação de referência da Sun (agora Oracle )
- RESTeasy , implementação do JBoss
- Restlet
-
WebSphere Application Server da IBM :
- Versão 7.0: por meio do "Feature Pack para aplicativos habilitados para comunicações"
- Versão 8.0 em diante: nativamente
- Servidor de aplicativos WebLogic da Oracle , consulte as notas
- Apache Tuscany ( http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html ), descontinuado
- Estrutura Cuubez ( https://web.archive.org/web/20190707005602/http://cuubez.com/ )
- Everrest , Implementação do Codenvy
- Jello-Framework , Java Application Framework otimizado para Google App Engine, incluindo um poderoso mecanismo RESTful e um modelo abrangente de autorização de dados.
- Apache TomEE , uma adição ao Apache Tomcat
Referências
- Hadley, Marc e Paul Sandoz, eds. (17 de setembro de 2009). JAX-RS: Java API para RESTful WebServices (versão 1.1), Java Community Process