RESTful Web Hizmetleri - İlk Uygulama

Jersey Framework ile gerçek RESTful web hizmetlerini yazmaya başlayalım. Jersey Çerçevesini kullanarak ilk örneğinizi yazmaya başlamadan önce, Jersey ortamınızı RESTful Web Hizmetleri - Ortam Kurulumu bölümünde açıklandığı gibi doğru şekilde kurduğunuzdan emin olmalısınız . Burada, Eclipse IDE hakkında biraz çalışma bilginiz olduğunu da varsayıyorum.

Öyleyse, kullanıcıların listesini görüntülemek için bir web hizmeti yöntemini ortaya çıkaracak basit bir Jersey Uygulaması yazmaya devam edelim.

Java Projesi Oluşturmak

İlk adım Eclipse IDE'yi kullanarak Dinamik Web Projesi oluşturmaktır. Seçeneği takip edinFile → New → Project ve son olarak seçin Dynamic Web Projectsihirbaz listesinden sihirbaz. Şimdi projenizi şu şekilde adlandırın:UserManagement aşağıdaki ekran görüntüsünde gösterildiği gibi sihirbaz penceresini kullanarak -

Projeniz başarıyla oluşturulduktan sonra, aşağıdaki içeriğe sahip olacaksınız. Project Explorer -

Gerekli Kitaplıkları Ekleme

İkinci adım olarak projemize Jersey Framework ve bağımlılıklarını (kitaplıkları) ekleyelim. Tüm kavanozları, projenin WEB-INF / lib dizinindeki indirme Jersey zip klasörünün aşağıdaki dizinlerinden kopyalayın.

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

Şimdi, proje adınıza sağ tıklayın UserManagement ve ardından içerik menüsünde bulunan seçeneği takip edin - Build Path → Configure Build Path Java Build Path penceresini görüntülemek için.

Şimdi kullan Add JARs altında bulunan düğme Libraries WEBINF / lib dizininde bulunan JAR'ları eklemek için sekme.

Kaynak Dosyaları Oluşturma

Şimdi asıl kaynak dosyalarını şu altında oluşturalım: UserManagementproje. Önce adında bir paket oluşturmalıyızcom.tutorialspoint. Bunu yapmak için, paket gezgini bölümünde src'ye sağ tıklayın ve seçeneği izleyin -New → Package.

Sonra yaratacağız UserService.java, User.java,UserDao.java com.tutorialspoint paketi altındaki dosyalar.

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(); 
   }  
}

Ana programla ilgili dikkat edilmesi gereken iki önemli nokta vardır:

UserService.java

  • İlk adım, UserService'e @Path ek açıklamasını kullanarak web hizmeti için bir yol belirlemektir.

  • İkinci adım, UserService yöntemine @Path ek açıklamasını kullanarak belirli web hizmeti yöntemi için bir yol belirlemektir.

Web.xml yapılandırma Dosyasını oluşturma

Bir XML dosyası olan ve uygulamamız için Jersey çerçeve sunucu uygulamasını belirtmek için kullanılan bir Web xml Yapılandırma dosyası oluşturmanız gerekir.

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>

Programı Dağıtma

Kaynak ve web yapılandırma dosyalarını oluşturmayı tamamladığınızda, programınızı derleyen ve çalıştıran bu adıma hazırsınız. Bunu yapmak için Eclipse kullanarak uygulamanızı bir savaş dosyası olarak dışa aktarın ve aynısını tomcat'te dağıtın.

Eclipse kullanarak bir WAR dosyası oluşturmak için şu seçeneği takip edin: File → export → Web → War Fileve son olarak proje UserManagement ve hedef klasörü seçin. Tomcat'te bir savaş dosyasını dağıtmak için UserManagement.war'ıTomcat Installation Directory → webapps directory ve Tomcat'i başlatın.

Programı Çalıştırmak

Web hizmetlerimizi test etmek için bir Chrome uzantısı olan Postman kullanıyoruz .

Tüm kullanıcıların listesini almak için UserManagement'tan istekte bulunun. GET isteği ile POSTMAN'e http: // localhost: 8080 / UserManagement / rest / UserService / users yazın ve aşağıdaki sonucu görün.

Tebrikler, ilk RESTful Uygulamanızı başarıyla oluşturdunuz.