Services Web RESTful - Première application

Commençons par écrire les services Web RESTful réels avec Jersey Framework. Avant de commencer à écrire votre premier exemple à l'aide de Jersey Framework, vous devez vous assurer que vous avez correctement configuré votre environnement Jersey, comme expliqué dans le chapitre Services Web RESTful - Configuration de l'environnement . Ici, je suppose également que vous avez une petite connaissance pratique d'Eclipse IDE.

Alors, passons à écrire une application Jersey simple qui exposera une méthode de service Web pour afficher la liste des utilisateurs.

Créer un projet Java

La première étape consiste à créer un projet Web dynamique à l'aide de l'IDE Eclipse. Suivez l'optionFile → New → Project et enfin sélectionnez le Dynamic Web Projectassistant dans la liste des assistants. Maintenant, nommez votre projet commeUserManagement en utilisant la fenêtre de l'assistant comme indiqué dans la capture d'écran suivante -

Une fois votre projet créé avec succès, vous aurez le contenu suivant dans votre Project Explorer -

Ajout des bibliothèques requises

Dans un deuxième temps, ajoutons Jersey Framework et ses dépendances (bibliothèques) dans notre projet. Copiez tous les fichiers JAR des répertoires suivants du dossier zip de téléchargement du jersey dans le répertoire WEB-INF / lib du projet.

  • \jaxrs-ri-2.17\jaxrs-ri\api
  • \jaxrs-ri-2.17\jaxrs-ri\ext
  • \jaxrs-ri-2.17\jaxrs-ri\lib

Maintenant, faites un clic droit sur le nom de votre projet UserManagement puis suivez l'option disponible dans le menu contextuel - Build Path → Configure Build Path pour afficher la fenêtre Java Build Path.

Maintenant, utilisez Add JARs bouton disponible sous Libraries tab pour ajouter les JAR présents dans le répertoire WEBINF / lib.

Création des fichiers source

Maintenant, créons les fichiers source réels sous le UserManagementprojet. Nous devons d'abord créer un package appelécom.tutorialspoint. Pour ce faire, faites un clic droit sur src dans la section de l'explorateur de paquets et suivez l'option -New → Package.

Ensuite, nous allons créer UserService.java, User.java,UserDao.java fichiers sous le package 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(); 
   }  
}

Il y a deux points importants à noter concernant le programme principal,

UserService.java

  • La première étape consiste à spécifier un chemin pour le service Web à l'aide de l'annotation @Path vers le UserService.

  • La deuxième étape consiste à spécifier un chemin pour la méthode de service Web particulière à l'aide de l'annotation @Path vers la méthode UserService.

Création du fichier de configuration Web.xml

Vous devez créer un fichier de configuration Web xml qui est un fichier XML et est utilisé pour spécifier le servlet du framework Jersey pour notre application.

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>

Déployer le programme

Une fois que vous avez terminé la création des fichiers de configuration source et Web, vous êtes prêt pour cette étape qui consiste à compiler et à exécuter votre programme. Pour ce faire, à l'aide d'Eclipse, exportez votre application en tant que fichier war et déployez la même chose dans tomcat.

Pour créer un fichier WAR en utilisant eclipse, suivez l'option File → export → Web → War Fileet enfin sélectionnez le projet UserManagement et le dossier de destination. Pour déployer un fichier war dans Tomcat, placez UserManagement.war dans leTomcat Installation Directory → webapps directory et démarrez le Tomcat.

Exécution du programme

Nous utilisons Postman , une extension Chrome, pour tester nos services Web.

Faites une demande à UserManagement pour obtenir la liste de tous les utilisateurs. Placez http: // localhost: 8080 / UserManagement / rest / UserService / users dans POSTMAN avec la requête GET et voyez le résultat suivant.

Félicitations, vous avez créé votre première application RESTful avec succès.