วันศุกร์ที่ 11 ธันวาคม พ.ศ. 2558

ws part 6 Client API

>> ก็มาถึงส่วนแบ่งที่หกกันแล้วนะครับ อันที่จริงควรจะเล่าเรื่อง server api ของ restful ให้ฟังก่อน เอาเป็นว่าเล่าไปพร้อมๆกันดีกว่า เท่าที่ผมเข้าใจเป็นดังนี้ครับเพื่อนๆ

>> ตอนนี้เรากำลังเขียนเว็บเซอร์วิสหรือเว็บให้บริการ resources ด้วย http protocol ซึ่งเป็นความคิดหรือหลักความคิดที่ถูกทำให้เกิดขึ้นจริงผ่าน library jar ชุดหนึ่งที่มีชื่อว่า Jersey ซึ่งมันได้แสดงให้เราเห็นแล้วว่า โค้ดฝั่ง server หรือฝั่ง services นั้นหน้าตาหรือแนวทางการเขียนเป็นอย่างไร ฉะนั้นต่อไปนี้เราจะมาเขียนโค้ดฝั่ง client หรือฝั่งผู้ขอใช้บริการกันบ้าง ว่าจะสามารถติดต่อผู้ให้บริการดังกล่าวนี้ได้อย่างไร

>> ควรทราบก่อนว่าฝั่งผู้ขอใช้บริการหรือเรียกว่า jax-rs client api ที่เรากำลังจะเขียนขึ้นกันนี้ มันถูกสร้างให้สามารถควบคุมหรือบังคับกลไกการขนส่งหรือการขอ connection บน http protocol, มันติดต่อได้กับทุกบริการที่สร้างอยู่บนรากฐานของ http protocol นั่นเองครับ

>> มี client api ตัวอื่นอีกไหมที่ทำอย่างเดียวกันนี้ได้ คำตอบคือ มีครับ อาทิเช่น HTTPURLConnection, Apache HTTP Library เป็นต้น แต่พวกเขาซับซ้อนเกินไป ใช้เวลาทำความเข้าใจมากกว่า (เทียบกับเวลาของมือใหม่) จะดีกว่าไหมในเมื่อ jax-rs client api ได้ห่อหุ้มและจัดการซ่อนความซับซ้อนนี้ให้ ทั้งยังมี api หรือวิธีการใช้งานที่ง่ายดายเพื่อนักพัฒนาจะได้ใช้เวลา ณ จุดๆนี้ลดน้อยลงไป แน่นอนมือใหม่อย่างผมยิ้มรับครับ

>> javax.ws.rs.client.ClientBuilder ขอตัวติดต่อเว็บเซอร์วิสจากเขาก่อน เราจะได้ออบเจ็กค์ client มาซึ่งจะต้องใช้ระบุไปยัง uri ที่เว็บเซอร์วิสนั้นให้บริการ แท้จริงแล้วเราสามารถเขียน uri ตรงๆไปยัง resource ใดๆได้เลย แต่ที่ตัดมาเขียนในเมธอด path ก็เพื่อเป็นการบ่งชี้ว่าส่วนที่ตัดมานี้คือ resources ที่ต้องการนะ ทั้งยังสามารถเขียนต่อๆกันได้ ดังรูปตัวอย่าง


>> โปรเจ็กค์ทดสอบนี้ ใช้จาวาโปรเจ็กค์ธรรมดา (รายงานผลลัพธ์ออกทาง console) จะสังเกตได้ว่าผลลัพธ์แรกคือ json ของข้อมูลที่อยู่ของ user ทุกคน ส่วนผลลัพธ์ที่สองคือ xml ของข้อมูลที่อยู่ของ user ที่มี id เท่ากับ 002 เพียงคนเดียว


>> ผลลัพธ์ที่เว็บเซอร์วิสส่งกลับมาเรากำหนดให้อ่านเป็นสตริง รับโดยออบเจ็กค์ Response และแสดงผลออกทาง console ดังที่ได้กล่าวไปครับ

>> โอกาสหน้าจะสลับไปเตรียม resources ฝั่งผู้ให้บริการมากกว่านี้หน่อย แล้วค่อยกลับมาคุยกันฝั่งผู้ใช้บริการอีกที

>> และนี่คือเหล่าจาร์ที่ใช้ในโปรเจ็กค์ครับ สวัสดี

ไม่มีความคิดเห็น:

แสดงความคิดเห็น