Учебники

Веб-сервисы RESTful — первое приложение

Давайте начнем писать реальные веб-сервисы RESTful с Jersey Framework. Прежде чем вы начнете писать свой первый пример с использованием Jersey Framework, вы должны убедиться, что вы правильно настроили среду Jersey, как описано в главе RESTful Web Services — Environment Environment Setup . Здесь я также предполагаю, что вы немного знакомы с Eclipse IDE.

Итак, давайте приступим к написанию простого приложения на Джерси, которое предоставит метод веб-службы для отображения списка пользователей.

Создание проекта Java

Первым шагом является создание динамического веб-проекта с использованием Eclipse IDE. Выберите пункт « Файл» → «Создать» → «Проект» и, наконец, выберите мастер « Динамический веб-проект» из списка. Теперь назовите ваш проект как UserManagement с помощью окна мастера, как показано на следующем снимке экрана —

Мастер динамических веб-проектов

Как только ваш проект будет успешно создан, вы увидите следующее содержимое в Project Explorer

Справочники по управлению пользователями

Добавление необходимых библиотек

В качестве второго шага добавим Jersey Framework и его зависимости (библиотеки) в наш проект. Скопируйте все jar-файлы из следующих каталогов загрузочной zip-папки jersey в директорию WEB-INF / lib проекта.

  • \ Jaxrs-ри-2,17 \ jaxrs-ри \ апи
  • \ Jaxrs-ри-2,17 \ jaxrs-ри \ внутр
  • \ Jaxrs-ри-2,17 \ jaxrs-ри \ Lib

Теперь щелкните правой кнопкой мыши на имени вашего проекта UserManagement и выберите параметр, доступный в контекстном меню — « Путь сборки» → «Настроить путь сборки» для отображения окна «Путь сборки Java».

Теперь используйте кнопку « Добавить JAR» , доступную на вкладке « Библиотеки », чтобы добавить JAR, присутствующие в каталоге WEBINF / lib.

Создание исходных файлов

Теперь давайте создадим фактические исходные файлы в проекте UserManagement . Сначала нам нужно создать пакет с именем com.tutorialspoint . Для этого щелкните правой кнопкой мыши на src в разделе проводника пакетов и выберите опцию — Создать → Пакет .

Далее мы создадим файлы UserService.java, User.java, UserDao.java в пакете 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(); 
   }  
}

В отношении основной программы следует отметить два важных момента:

UserService.java

  • Первый шаг — указать путь для веб-службы с помощью аннотации @Path к UserService.

  • Второй шаг — указать путь для конкретного метода веб-службы, используя аннотацию @Path для метода UserService.

Первый шаг — указать путь для веб-службы с помощью аннотации @Path к UserService.

Второй шаг — указать путь для конкретного метода веб-службы, используя аннотацию @Path для метода UserService.

Создание файла конфигурации Web.xml

Вам необходимо создать файл конфигурации Web xml, который является файлом XML и используется для указания сервлета платформы Jersey для нашего приложения.

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>

Развертывание программы

Когда вы закончите создавать исходные файлы и файлы веб-конфигурации, вы будете готовы к этому шагу, который компилирует и запускает вашу программу. Для этого, используя Eclipse, экспортируйте ваше приложение как файл war и разверните его в tomcat.

Чтобы создать файл WAR с использованием Eclipse, выберите « Файл» → «Экспорт» → «Интернет» → «Файл войны» и, наконец, выберите «UserManagement» проекта и папку назначения. Чтобы развернуть файл war в Tomcat, поместите файл UserManagement.war в каталог установки Tomcat → каталог webapps и запустите Tomcat.

Запуск программы

Мы используем Postman , расширение для Chrome, для тестирования наших веб-сервисов.

Сделайте запрос к UserManagement, чтобы получить список всех пользователей. Поместите http: // localhost: 8080 / UserManagement / rest / UserService / users в POSTMAN с GET-запросом и увидите следующий результат.

RESTful API, Все пользователи

Поздравляем, вы успешно создали свое первое приложение RESTful.