Serviços da Web RESTful - Primeiro aplicativo
Vamos começar a escrever os serviços da web RESTful reais com o Jersey Framework. Antes de começar a escrever seu primeiro exemplo usando o Jersey Framework, você deve certificar-se de que configurou seu ambiente Jersey corretamente, conforme explicado no capítulo RESTful Web Services - Configuração do ambiente . Aqui, também estou assumindo que você tem um pouco de conhecimento prático do Eclipse IDE.
Portanto, vamos continuar a escrever um aplicativo Jersey simples que exporá um método de serviço da web para exibir a lista de usuários.
Criando um Projeto Java
A primeira etapa é criar um Projeto da Web Dinâmico usando Eclipse IDE. Siga a opçãoFile → New → Project e finalmente selecione o Dynamic Web Projectassistente da lista de assistentes. Agora nomeie seu projeto comoUserManagement usando a janela do assistente, conforme mostrado na imagem a seguir -
Assim que seu projeto for criado com sucesso, você terá o seguinte conteúdo em seu Project Explorer -
Adicionando as Bibliotecas Necessárias
Como uma segunda etapa, vamos adicionar Jersey Framework e suas dependências (bibliotecas) em nosso projeto. Copie todos os jars dos seguintes diretórios da pasta zip de download do jersey no diretório WEB-INF / lib do projeto.
- \jaxrs-ri-2.17\jaxrs-ri\api
- \jaxrs-ri-2.17\jaxrs-ri\ext
- \jaxrs-ri-2.17\jaxrs-ri\lib
Agora, clique com o botão direito no nome do seu projeto UserManagement e depois siga a opção disponível no menu de contexto - Build Path → Configure Build Path para exibir a janela Java Build Path.
Agora usa Add JARs botão disponível em Libraries para adicionar os JARs presentes no diretório WEBINF / lib.
Criando os arquivos de origem
Agora vamos criar os arquivos de origem reais sob o UserManagementprojeto. Primeiro, precisamos criar um pacote chamadocom.tutorialspoint. Para fazer isso, clique com o botão direito do mouse em src na seção do explorador de pacotes e siga a opção -New → Package.
Em seguida, vamos criar UserService.java, User.java,UserDao.java arquivos no pacote com.tutorialspoint.
User.java
package com.tutorialspoint;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String profession;
public User(){}
public User(int id, String name, String profession){
this.id = id;
this.name = name;
this.profession = profession;
}
public int getId() {
return id;
}
@XmlElement
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public String getProfession() {
return profession;
}
@XmlElement
public void setProfession(String profession) {
this.profession = profession;
}
}
UserDao.java
package com.tutorialspoint;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> getAllUsers(){
List<User> userList = null;
try {
File file = new File("Users.dat");
if (!file.exists()) {
User user = new User(1, "Mahesh", "Teacher");
userList = new ArrayList<User>();
userList.add(user);
saveUserList(userList);
}
else{
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
userList = (List<User>) ois.readObject();
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return userList;
}
private void saveUserList(List<User> userList){
try {
File file = new File("Users.dat");
FileOutputStream fos;
fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(userList);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
UserService.java
package com.tutorialspoint;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/UserService")
public class UserService {
UserDao userDao = new UserDao();
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers(){
return userDao.getAllUsers();
}
}
Existem dois pontos importantes a serem observados sobre o programa principal,
UserService.java
A primeira etapa é especificar um caminho para o serviço da web usando a anotação @Path para o UserService.
A segunda etapa é especificar um caminho para o método de serviço da web particular usando a anotação @Path para o método de UserService.
Criação do arquivo de configuração Web.xml
Você precisa criar um arquivo de configuração xml da Web que é um arquivo XML e é usado para especificar o servlet da estrutura Jersey para nosso aplicativo.
web.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>User Management</display-name>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.tutorialspoint</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Implementando o Programa
Quando terminar de criar os arquivos de origem e de configuração da web, você estará pronto para esta etapa que consiste em compilar e executar seu programa. Para fazer isso, usando o Eclipse, exporte seu aplicativo como um arquivo war e implante o mesmo no tomcat.
Para criar um arquivo WAR usando eclipse, siga a opção File → export → Web → War Filee, por fim, selecione o gerenciamento do usuário do projeto e a pasta de destino. Para implantar um arquivo war no Tomcat, coloque o UserManagement.war noTomcat Installation Directory → webapps directory e inicie o Tomcat.
Executando o Programa
Estamos usando Postman , uma extensão do Chrome, para testar nossos serviços da web.
Faça uma solicitação ao UserManagement para obter a lista de todos os usuários. Coloque http: // localhost: 8080 / UserManagement / rest / UserService / users no POSTMAN com solicitação GET e veja o seguinte resultado.
Parabéns, você criou seu primeiro aplicativo RESTful com sucesso.