How to create RESTful Web service with Netbeans – Create New Class

บทนำ (Overview)

จากบทความที่ผ่านมาเราสามารถเขียนโปรแกรมให้รับค่าและส่งกลับคืนไปได้แล้ว มาในบทความนี้เราลองเพิ่ม “Class” ใหม่ขึ้นมาเพื่อสร้าง “Instance” สำหรับใช้งานด้านต่าง ๆ จากตัวอย่างในบทความนี้ สร้าง Class เกี่ยวกับ Employee ให้สามารถตั้งค่า และเรียกคืนได้ เช่น ค่ารหัสพนักงาน (id) ชื่อพนักงาน (name) และ แผนก (department) เป็นต้น โดยให้โปรแกรมรับค่า “id” จากผู้ใช้ และใน “Sourcecode” ของ “class” หลักให้ตั้งค่า “name” และ “departments” เป็นค่าคงที่ไว้ ดังนี้

ขั้นตอน (Steps)

  1. คลิกขวาที “Source Packages” ไปที่ “New” และเลือก “Java Class”  เพื่อเพิ่ม “Class” ใหม่restservice-netbean39
  2. ตั้งชื่อ “Class” แล้วกดปุ่ม “Finish” restservice-netbean40
  3. จะได้ไฟล์ “.java” พี่บรรจุ “class” ใหม่ขึ้นมา ในที่นี้เราจะให้ชื่อว่า “Employee” restservice-netbean41
  4. เราสามารถสร้าง “Properties” และ “Method” ได้ดังตัวอย่าง (ไฟล์ Employee.java)
    public class Employee {
        //ชื่อตัวแปร
        String id;
        String name;
        String department;
        
        //ดึงค่า Id
        public String getId() {
            return id;
        }
     
        //ตั้งค่า Id
        public void setId(String id) {
            this.id = id;
        }
        
        //ดึงชื่อ
        public String getName() {
            return name;
        }
     
        //ตั้งค่าชื่อ
        public void setName(String name) {
            this.name = name;
        }
        
        //ดึงค่าแผนก
        public String getDepartment(){
            return department;
        }
        
        //ตั้งค่าแผนก
        public void setDepartment(String depart) {
            this.department = depart;
        }
    }
    
  5. ในส่วนหน้าที่จะเรียกใช้ “Class” ที่ชื่อ “Employee” สามารถเขียนได้ดังตัวอย่างต่อไปนี้ (ไฟล์ LoginResource.java)
        @GET
        @Path("/xml/{id}")
        public String getEmpDetail(@PathParam("id") String id) {
            Employee emp = new Employee();
            emp.setId(id);
            emp.setName("Warunyou");
            emp.setDepartment("IT security");
            
            return "ID:" + emp.getId() + "</br> Name" + emp.getName() + "</br> Department:" + emp.getDepartment();
        }
    
  6. ลองเข้าถึง URL (http://localhost:8080/Server/resources/Login/xml/120245) ได้ผลลัพธ์ดังนี้ restservice-netbean42
  7. จากตัวอย่างข้างต้นเราจะพบว่าสามารถดึงข้อมูล ๆ ต่างของพนักงานจากการตั้งค่าจาก “Instance” ที่ได้มาจาก “Class” ที่ชื่อ “Employee” อย่างไรก็พบว่าในส่งค่ากลับมาจากฝั่ง “Server” เราใช้วิธีการดึงค่าที่เป็น “String” มาเชื่อต่อกันและส่งกลับมาดังนี้
    //ค่า Return ของ Function ต้องเป็น String
    public String getEmpDetail(@PathParam("id") String id) {
    
    //ค่า Return เกิดจาก Function แต่ละตัวที่ดึงค่าเป็น String มาต่อกัน
    return "ID:" + emp.getId() + "</br> Name" + emp.getName() + "</br> Department:" + emp.getDepartment();
    }
    
  8. เราสามารถสรุป “Source-code” ได้ดังนี้
    LoginResource.java

    package helloworld;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    
    @Path("Login")
    public class LoginResource {
        @GET
        @Path("/xml/{id}")
        //@Produces(MediaType.APPLICATION_XML)
        public String getEmpDetail(@PathParam("id") String id) {
            Employee emp = new Employee();
            emp.setId(id);
            emp.setName("Warunyou");
            emp.setDepartment("IT security");
            
            return "ID:" + emp.getId() + "</br> Name" + emp.getName() + "</br> Department:" + emp.getDepartment();
        }
    }
    

    Employee.java

    package helloworld;
    
    public class Employee {
        
        String id;
        String name;
        String department;
        
        public String getId() {
            return id;
        }
     
        public void setId(String id) {
            this.id = id;
        }
        
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
        
        public String getDepartment(){
            return department;
        }
        
        public void setDepartment(String depart) {
            this.department = depart;
        }
        
    }
    

ใส่ความเห็น