Sobre a JSR 339 para Web Services RESTful – JAX-RS 2.0

Está é uma tradução e interpretação da especificação da JSR 339 – JAX-RS 2.0 – A API Java para Web Services RESTful.

JSRs: Solicitações de Especificação Java
JSR 339: JAX-RS 2.0: A API Java para Web Services

Seu status atual é de manutenção.
A versão atual em uso é a 2.9.

A versão atual do Contrato de Participação da Especificação Java é o 2.0.

Os líderes da especificação são: Santiago Pericasgeertsen e Marek Potociar, ambos da Oracle.

O Grupo de Especialistas é composto por :

Jan Algermissen, Adam Bien, Clinton L Combs, Bill De Hora, Markus Karg, Guilherme de Azevedo Silveira, Synodinos, Dionysios G., Julian Reschke;

Sastry Malladi do eBay;

Jian Wu Daí da IBM;

Santiago Pericasgeertsen e Marek Potociar da Oracle;

Florent Benoit do OW2;

Bill Burke da RedHat;

Sergey Beryozkin da Talend;

Colaboradores: nenhum

Estágio

Início

Fim

Liberação de Manutenção

13 de Outubro de 2014

 

Boletim de Revisão de Manutenção

23 de Setembro de 2014

29 de Setembro de 2014

Revisão do Rascunho de Manutenção

22 de Agosto de 2014

21 de Setembro de 2014

Último Lançamento

24 de Maio de 2013

 

Boletim de Aprovação Final

09 de Abril de 2013

22 de Abril de 2013

Projeto Final Proposto

28 de Fevereiro 2013

Boletim de Revisão Pública

13 de Novembro de 2012

26 de Novembro de 2012

Revisão Pública

28 de Setembro de 2012

12 de Novembro 2012

Esboço Antecipado 3

07 de Junho de 2012

07 de Julho de 2012

Esboço Antecipado 2

09 de Fevereiro de 2012

10 de Março de 2012

Esboço Antecipado

21 de Outubro de 2011

20 de Dezembro de 2011

Formação de Grupo de Especialistas

25 de Janeiro de 2011

20 de Maio de 2011

JSR Revisão de Boletim

11 de Janeiro de 2011

24 de Janeiro de 2011

Estatus: Manutenção

Versão do JCP em uso: 2.9

Versão do Contrato de Participação de Especificação Java em uso: 2.0

Descrição:

Este JSR desenvolverá a próxima versão do JAX-RS, a API para serviços Web RESTful (Representação de Estado de Transferência) na Plataforma Java.

Transparência do Grupo de Peritos:

Comunicações públicas

Rastreamento de Emissão

Atualizações para o JSR Original

O o que segue foi atualizado a partir da proposta original:

2013.03.05:

2.18 Forneça uma descrição dos termos comerciais para a Especificação, RI e TCK que serão aplicáveis quando este JSR for final.

Licença de especificação

Licença RI

Uso comercial

O RI estará disponível para uso comercial sob a licença de código aberto CDDL 1.1, com a licença de código aberto GPLv2 com Classpath Exception, ou esta licença RI.

Uso não-comercial

O RI estará disponível para uso não-comercial sob a licença de código aberto CDDL 1.1, ou a licença de código aberto GPLv2 com Classpath Exception.

Licença TCK

Uso comercial

O TCK estará disponível para uso comercial sob esta licença TCK.

Uso não-comercial

Conforme exigido pelo Acordo de Participação de Especificação de Java (JSPA), o TCK será licenciado sem nenhum custo sem apoio a qualificados sem fins lucrativos. O Programa de Bolsas de Estudo de Compatibilidade verificará essa qualificação. O apoio também pode ser fornecido gratuitamente com a aprovação da bolsa de estudos. Para obter mais informações, consulte: http://www.oracle.com/technetwork/java/index-137188.html

2012.02.09:

O líder de especificações e o grupo de especialistas transferiram o JSR para JCP 2.8.

2.19 Descreva o canal de comunicação que estabeleceu para que o público possa observar as deliberações do Grupo de Peritos, fornecer feedback e ver os arquivos de todas as comunicações do Grupo de Especialistas.

http://java.net/projects/jax-rs-spec/lists

2.20 Qual é o URL do Issue Tracker que o público pode ler, e como o log público causa problemas no Issue Tracker?

2.21 Indique a localização do arquivo de documentos acessível ao público que você criou para o Grupo de Especialistas.

http://java.net/projects/jax-rs-spec/downloads
2011.05.01:

Líderes de Epecificação: Santiago Pericas-Geertsen, Marek Potociar

2011.02.22:

Líderes de Especificação: Roberto Chinnici, Marek Potociar

Pedido de Especificação Java Original (JSR)

Identificação | Pedido | Contribuições

Seção 1. Identificação

NOTA: esta informação foi atualizada a partir desta proposta original.

Composição inicial do grupo de peritos:

Oracle

Apoiam esta JSR:

Oracle

Stefan Tilkov

Jerome Louvel

Guilherme Silveira

Bill de Hora

Clint Combs

Jeff Genender

Reza Rahman

OW2

Seção 2: Solicitação

2.1 Descreva a especificação proposta:

O recurso mais solicitado para o JAX-RS 2.0 é uma API de cliente: muitas, se não todas, as implementações do JAX-RS fornecem algum grau de suporte da API do cliente. Este JSR definirá duas APIs de cliente, ambas compatíveis com o estilo REST: uma API de baixo nível usando um padrão de construtor e um nível mais alto, alavancando o anterior. Mecanismos de segurança comuns também serão especificados. A API não definirá como as implementações de cliente HTTP, como HttpUrlConnection ou a biblioteca de cliente HTTP Apache, serão conectadas à API. A API suporta processamento de resposta síncrono e assíncrono. WebSocket ou HTTP processamento de fluxo de respostas estão fora do escopo para este JSR e será tratado em uma revisão futura do JAX-RS.

Hypermedia é uma característica muito importante de aplicações Web RESTful. JAX-RS 1.1 forneceu algum suporte básico para construção de URIs, mas este JSR irá definir uma maneira de criar e processar facilmente links associados a recursos em representações como cabeçalhos de links ou links dentro do corpo da entidade. Da mesma forma, no cliente será possível extrair links em representações e fazer outras solicitações de acordo com esses links.

Model-View-Controller (MVC) é um padrão comum em estruturas da Web, onde é usado predominantemente por aplicativos baseados em HTML. Adotando a terminologia MVC, as classes de recursos JAX-RS são comparáveis aos controladores. Este JSR especificará uma arquitetura MVC compatível com o modelo de programação JAX-RS. As Páginas de Servidor Java serão especificadas como um tipo de exibição. Será possível ligar outras tecnologias de visualização, por exemplo, FreeMarker ou StringTemplate.

O JAX-RS 1.1 tem suporte limitado para validação de parâmetros. Este JSR tornará possível validar um conjunto de parâmetros, como parâmetros de formulário ou consulta, e retornar uma resposta significativa no caso de falha na validação. A API primária utilizada para validação será a API de Validação de Beans.

JAX-RS 1.1 foi definido antes de JSR-330 foi especificado e como resultado não utiliza 330 anotações, como @Inject, tão eficazmente quanto poderia. Este JSR irá especificar a integração mais próxima com 330 anotações que potencialmente podem renderizar algumas anotações existentes no JAX-RS, como @Context, obsoletas ou redundantes.

O JAX-RS 1.1 define um modelo de resposta de solicitação síncrona no lado do servidor. Este JSR especificará um modelo de processamento de solicitação assíncrona simples de modo que uma resposta possa ser retornada assíncrona à solicitação. O Servlet 3.0 pode ser alavancado para permitir esse suporte, mas as implementações podem optar por usar outras APIs específicas de contêiner.

No JAX-RS 1.1, a negociação de conteúdo é conduzida principalmente pelo cliente usando o parâmetro “q” no cabeçalho Aceitar. Este JSR irá adicionar suporte para um equivalente do lado do servidor dele, “qs”, para dar ao servidor mais dizendo na representação selecionada; O algoritmo de negociação de conteúdo na especificação JAX-RS existente será atualizado de modo a manter determinismo e compatibilidade entre implementações.

Esta JSR também fará melhorias na JSR na área de facilidade de utilização, e. Seguindo mais de perto o princípio do não repetir. Ele também irá corrigir qualquer número de bugs descobertos no JAX-RS 1.1.

Como mencionado acima, o suporte assíncrono para HTTP longo de votação, Comet e Web Sockets está fora do escopo para esta versão. Pretendemos abordar-lo em uma futura revisão da especificação JAX-RS.

2.2 Qual é a plataforma Java alvo? (Isto é, desktop, servidor, pessoal, incorporado, cartão, etc.)

Esta especificação é direcionada para Java SE 6.0 ou superior e Java EE 6 ou plataformas superiores.

2.3 Os Comitês Executivos gostariam de garantir que os apresentadores da JSR pensem sobre como a tecnologia proposta está relacionada a todas as edições da plataforma Java. Forneça detalhes aqui para quais edições de plataforma estão sendo segmentadas por este JSR e como este JSR considerou o relacionamento com as outras edições da plataforma.

Este JSR estará disponível autônomo. Também é alvo de inclusão na plataforma Java EE 7. Além disso, os produtos Java EE 6 poderão implementar JAX-RS 2.0 em vez de JAX-RS 1.1.

2.4 Esta JSR deve ser votada por ambas as Comissões Executivas?

Não. Apenas pela SE / EE EC.

2.5 Que necessidade da comunidade Java será abordada pela especificação proposta?

Ver 2.1 acima.

2.6 Por que essa necessidade não é atendida pelas especificações existentes?

Ver 2.1 acima.

2.7 Dê uma breve descrição da tecnologia ou tecnologias subjacentes:

Ver 2.1 acima.

2.8 Existe um nome de pacote proposto para a Especificação da API? (Isto é, algo de javapi, algo org., Etc.)

O JAX-RS 2.0 usará o mesmo nome do pacote como JAX-RS 1.1, ou seja, javax.ws.rs.

2.9 A especificação proposta tem alguma dependência em sistemas operacionais específicos, CPUs ou dispositivos de E/S que você conhece?

Não.

2.10 Há algum problema de segurança que não possa ser resolvido pelo modelo de segurança atual?

Não. Esta JSR alavancará os mecanismos de segurança HTTP existentes.

2.11 Há problemas de internacionalização ou de localização?

Este JSR usará o suporte I18N em Java SE.

2.12 Existem especificações existentes que possam ser tornadas obsoletas, obsoletas ou que necessitem de revisão como resultado deste trabalho?

Não.

2.13 Descreva o calendário previsto para o desenvolvimento desta especificação.

Jan 2011 Grupo de peritos formado

Q3 2011 Early Draft

Q4 2011 Revisão pública

Q2 2012 Versão Final

2.14 Descreva o modelo de trabalho previsto para o grupo de peritos que trabalha no desenvolvimento desta especificação.

O principal meio de comunicação será o e-mail, com teleconferências e reuniões presenciais programadas conforme necessário. Solicitaremos feedback da comunidade e alavancaremos o modelo de desenvolvimento de código aberto.

2.15 Forneça respostas detalhadas à lista de verificação de transparência, certificando-se de incluir URLs conforme apropriado:

O JAX-RS 2.0 seguirá o mesmo modelo de trabalho do JAX-RS 1.0 / 1.1 (JSR-311). Em particular, um local do projeto será usado para rastrear todas as questões e disseminar informações sobre o andamento da JSR. Veja o projeto JSR-311 no java.net para mais detalhes sobre como o JAX-RS 1.0 foi executado.

- O público pode ler os nomes das pessoas no Grupo de Peritos.

Essas informações estarão na página do projeto para o JSR. Também fará parte de cada projeto de especificação.

- O negócio do Grupo de Peritos é regularmente reportado num alias publicamente legível.

O grupo de peritos conduzirá negócios em um apelido publicamente legível. Um alias particular será usado apenas para informações confidenciais do EG, conforme necessário.

- O cronograma para o JSR está disponível ao público, é atual, e eu atualizá-lo regularmente.

O cronograma estará disponível na página do projeto para o JSR.

- O público pode ler/escrever em um wiki para o meu JSR.

Usaremos uma lista de discussão pública para comentários.

- Eu li e respondo a postagens no quadro de discussão do meu JSR no jcp.org.

Seguiremos essas discussões e responderemos a elas ou redirecionamos os usuários para a lista de discussão de comentários públicos.

- Há um problema-rastreador para o meu JSR que o público pode ler.

Sim, será acessível a partir da página do projeto JSR.

- Falei em conferências e eventos sobre o meu JSR recentemente.

Sim, mais recentemente no JavaOne 2010 e Devoxx 2010.

- Estou usando processos open-source para o desenvolvimento do RI e / ou TCK.

Sim, a Implementação de Referência será desenvolvida como parte do Projeto Jersey. O RI final estará disponível na página de download.

- A guia Atualização para o meu JSR tem links e informações sobre todos os mecanismos de comunicação pública e sites para o desenvolvimento do meu JSR.

Ele irá apontar para a página do projeto para o JSR.

2.16 Descreva como o RI e TCK serão entregues, ou seja, como parte de um perfil ou edição de plataforma, ou stand-alone, ou ambos. Inclua informações sobre a versão do perfil ou da plataforma na sua resposta.

A implementação de referência será disponibilizada de forma autônoma e também como parte da implementação de referência para a plataforma Java EE 7. O TCK será disponibilizado autônomo e como parte do Java EE CTS.

2.17 Indique se as versões anteriores estão disponíveis autônomas e você está propondo agora em 2.13 para entregar apenas RI e TCK como parte de uma edição de perfil ou plataforma (ver seções 1.1.5 e 1.1.6 do documento JCP 2) .

N/D.

2.18 Forneça uma descrição dos termos comerciais para a Especificação, RI e TCK que serão aplicáveis quando este JSR for final.

Nota: esta informação foi atualizada a partir desta proposta original.

Licença da Especificação

Licença RI

Licença TCK

Seção 3: Contribuições

3.1 Faça uma lista de todos os documentos, especificações ou implementações existentes que descrevam a tecnologia. Inclua links para os documentos se eles estiverem disponíveis ao público.

http://jcp.org/en/jsr/detail?id=311

3.2 Explicação de como esses itens podem ser usados como ponto de partida para o trabalho.

A especificação JAX-RS 1.1 será o ponto de partida para este trabalho.

Segue o link do texto original: https://jcp.org/en/jsr/detail?id=339
Segue o link do arquivo em formato pdf da última versão ofical da biblioteca JAX-RS: Java API for RESTful Web Services Download

Esta entrada foi publicada em Java EE, Plataforma Java. Adicione o link permanenteaos seus favoritos.

Os comentários estão encerrados.