How to create RESTful Web service with Netbeans – Context

บทนำ (Overview)

เราสามารถเขียน “RESTful Web Serices” เพื่อดึงค่า “User Agent” ซึ่งก็คือ “Web Browser” ต่าง ๆ เช่น “Firefox IE Safari” จาก “Operating System” ต่าง ๆ ได้ดังนี้

ขั้นตอน (Steps)

  1. ก่อนอื่นเริ่มต้นต้องเพิ่มคำสั่งดังนี้
    import javax.ws.rs.core.Context;
    import javax.ws.rs.core.HttpHeaders;
    
  2. จากนั้นเราสามารถเรียกใช้งาน “@Context” และ “HttpHeaders” ดังนี้
    @Context HttpHeaders tmpHeader
    
  3. สามารถเขียน “Source-code” เป็นตัวอย่างได้ดังนี้
    @GET
        @Path("/testUserAgent")
        public String getAgent(@Context HttpHeaders tmpHeader) {
            String tmpAgent = tmpHeader.getRequestHeader("user-agent").get(0);
            return tmpAgent;
        }
    
  4. ทดสอบ “RESTful Web Servers” ได้ดังนี้ restservice-netbean28
  5. จากการทดลองข้างต้น เราลองมาทดสอบกันดูว่าอะไรคือ “Header” อะไรคือ “User-Agent” โดยใช้โปรแกรม “Burp” ลองดักจับ “HTTP request” และ “response” อีกสักครั้ง restservice-netbean29
  6. “HTTP request” ฝั่งซ้ายคือฝั่งที่ “Web Browser” ส่งไปคือ “Firefox” และฝั่งขวาคือสิ่งที่ “Web Server” ได้รับโดยเราเขียนโปรแกรมให้แสดงผลกลับมานั้น
  7. สรุป “Source-code” ทั้งหมดได้ดังต่อไปนี้
    package helloworld;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.FormParam;
    import javax.ws.rs.core.Context;
    import javax.ws.rs.core.HttpHeaders;
    
    @Path("Login")
    public class LoginResource {
    
        @POST
        public String checkLogin(@FormParam("user") String tmpUser, @FormParam("pass") String tmpPass) {
            return "Username: " + tmpUser + "..." + "Password: " + tmpPass  ;
        }
        
        @GET
        @Path("/Forgot")
        public String forgotPassword() {
            return "E-mail sent already";
     
        }
        
        @GET
        @Path("/testUserAgent")
        public String getAgent(@Context HttpHeaders tmpHeader) {
            String tmpAgent = tmpHeader.getRequestHeader("user-agent").get(0);
            return tmpAgent;
        }
    }
    
    

ใส่ความเห็น