Layanan Web RESTful - Aplikasi Pertama

Mari kita mulai menulis layanan web RESTful yang sebenarnya dengan Jersey Framework. Sebelum Anda mulai menulis contoh pertama Anda menggunakan Jersey Framework, Anda harus memastikan bahwa Anda telah mengatur lingkungan Jersey Anda dengan benar seperti yang dijelaskan di bagian RESTful Web Services - Environment Setup . Di sini, saya juga berasumsi bahwa Anda memiliki sedikit pengetahuan tentang Eclipse IDE.

Jadi, mari kita lanjutkan untuk menulis Aplikasi Jersey sederhana yang akan menampilkan metode layanan web untuk menampilkan daftar pengguna.

Membuat Proyek Java

Langkah pertama adalah membuat Proyek Web Dinamis menggunakan Eclipse IDE. Ikuti opsinyaFile → New → Project dan terakhir pilih Dynamic Web Projectwizard dari daftar wizard. Sekarang beri nama proyek Anda sebagaiUserManagement menggunakan jendela wizard seperti yang ditunjukkan pada tangkapan layar berikut -

Setelah proyek Anda berhasil dibuat, Anda akan memiliki konten berikut di Project Explorer -

Menambahkan Perpustakaan yang Diperlukan

Sebagai langkah kedua mari kita tambahkan Jersey Framework dan dependensinya (pustaka) dalam proyek kita. Salin semua toples dari direktori berikut dari folder download jersey zip di direktori WEB-INF / lib proyek.

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

Sekarang, klik kanan pada nama proyek Anda UserManagement dan kemudian ikuti opsi yang tersedia di menu konteks - Build Path → Configure Build Path untuk menampilkan jendela Java Build Path.

Sekarang gunakan Add JARs tombol tersedia di bawah Libraries tab untuk menambahkan JAR yang ada di direktori WEBINF / lib.

Membuat File Sumber

Sekarang mari kita buat file sumber sebenarnya di bawah UserManagementproyek. Pertama kita perlu membuat paket bernamacom.tutorialspoint. Untuk melakukan ini, klik kanan pada src di bagian penjelajah paket dan ikuti opsi -New → Package.

Selanjutnya kita akan membuat UserService.java, User.java,UserDao.java file di bawah paket 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(); 
   }  
}

Ada dua hal penting yang perlu diperhatikan tentang program utama,

UserService.java

  • Langkah pertama adalah menentukan jalur untuk layanan web menggunakan anotasi @Path ke UserService.

  • Langkah kedua adalah menetapkan jalur untuk metode layanan web tertentu menggunakan anotasi @Path ke metode UserService.

Membuat File konfigurasi Web.xml

Anda perlu membuat file Konfigurasi Web xml yang merupakan file XML dan digunakan untuk menentukan servlet kerangka kerja Jersey untuk aplikasi kita.

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>

Menerapkan Program

Setelah Anda selesai membuat file sumber dan konfigurasi web, Anda siap untuk langkah ini yaitu mengompilasi dan menjalankan program Anda. Untuk melakukan ini, menggunakan Eclipse, ekspor aplikasi Anda sebagai file perang dan terapkan yang sama di tomcat.

Untuk membuat file WAR menggunakan eclipse, ikuti opsinya File → export → Web → War Filedan terakhir pilih proyek UserManagement dan folder tujuan. Untuk menerapkan file perang di Tomcat, tempatkan UserManagement.war diTomcat Installation Directory → webapps directory dan mulai Tomcat.

Menjalankan Program

Kami menggunakan Postman , ekstensi Chrome, untuk menguji layanan web kami.

Buat permintaan ke UserManagement untuk mendapatkan daftar semua pengguna. Letakkan http: // localhost: 8080 / UserManagement / rest / UserService / users di POSTMAN dengan permintaan GET dan lihat hasil berikut.

Selamat, Anda telah berhasil membuat Aplikasi RESTful pertama Anda.