Definindo os Recursos nos Aplicativos RESTful
É possível usar a API Java™ para Serviços da Web RESTful (JAX-RS) para desenvolver serviços que seguem os princípios Representational State Transfer (REST). Os serviços RESTful baseiam-se na manipulação de recursos. Os recursos podem conter dados estáticos ou atualizados dinamicamente. Ao identificar os recursos no seu aplicativo, poderá tornar seu serviço mais útil e facilitar o desenvolvimento.
Antes de Iniciar
Após identificar o aplicativo que deseja expor como um serviço RESTful, você deve primeiro definir os recursos para seu aplicativo RESTful. Após definir os recursos para seu aplicativo, considere o tipo de dados que deseja expor. Talvez você já tenha um banco de dados relacional que contenha informações que deseja expor aos usuários usando a tecnologia REST. Você já possui um conjunto de classes Java definido para acessar os dados?
Por exemplo, considere o caso de um aplicativo definido para suportar uma livraria. Esse aplicativo atualmente possui um banco de dados com várias tabelas que definem os vários itens na coleta de manuais e o inventário de cada manual. Nesse exemplo, há um número de maneiras para representar os dados no banco de dados em um aplicativo RESTful. Uma abordagem é considerar cada tabela como um recurso individual, para que cada um dos verbos no pedido RESTful seja mapeado para as ações que o banco de dados suporta nessa tabela, como selecionar, inserir, atualizar e excluir. Esse exemplo é uma abordagem simples para criar um aplicativo RESTful. Essa abordagem que usa o exemplo de armazenamento de manual também é usada na documentação que descreve a definição dos padrões de URL para recursos, métodos de recursos, cabeçalhos e códigos de resposta HTTP, tipos de mídia e parâmetros para representações de pedido para os recursos.
Em suporte para esse banco de dados para o aplicativo de armazenamento de manual, já pode haver um código que seja responsável pelo acesso ao banco de dados e pela recuperação dos dados a partir de cada tabela. Mesmo que as linhas em cada uma das tabelas represente logicamente cada um dos recursos, as classes acessadoras serão usadas para definir os recursos. A implementação da documentação dos aplicativos JAX-RS fornece mais detalhes sobre como essas classes são incorporadas no aplicativo JAX-RS.
Como alternativa, você pode ter mais conteúdo estático que não resida em um banco de dados que você queira distribuir como recursos. Independente de ser uma coleção de documentos em vários formatos ou uma fachada baseada em recursos para outros sistemas remotos, ao usar o JAX-RS, é possível distribuir conteúdo de diversas origens.
Sobre Esta Tarefa
Os recursos são o bloco de construção básico de um serviço RESTful. Os exemplos de um recurso a partir de um aplicativo de armazenamento de manual online incluem um manual, uma ordem de um armazenamento e uma coleta de usuários.
Os recursos são endereçáveis pelas URLs e os métodos HTTP podem executar operações nos recursos. Os recursos podem ter diversas representações que usam diferentes formatos, como XML e JSON. É possível usar os cabeçalhos e parâmetros HTTP para passar informações adicionais relevantes à solicitação e à resposta.
Com o JAX-RS, é possível anotar objetos Plain Old Java (POJO) existentes ou novos com as anotações específicas JAX-RS. As classes de recursos anotadas e os métodos anotados do JAX-RS são iniciados dependendo dos padrões do URI.
Procedimento
- Identifique os tipos de recursos no aplicativo.
- (opcional) Identifique as classes Java existentes que podem ser usadas como classes de recursos.
- Crie novas classes Java para recursos que não possuem uma classe Java existente.
Resultados
Você definiu o conteúdo que deseja expor como uma coleta de recursos no seu aplicativo.
O que Fazer Depois
Com base nos recursos definidos, consulte a definição de padrões HTTP para recursos, métodos de recursos, cabeçalhos e códigos de resposta HTTP, tipos de mídia e parâmetros para representações de pedido para os recursos, para saber mais sobre as etapas adicionais a serem seguidas para definir os recursos do seu aplicativo JAX-RS.