การใช้งาน OData service (Part 2) - GET Entity, EntitySet
จากตอนที่แล้วที่เราได้อธิบายถึงการดูในส่วนของ metadata ซึ่งถ้าใครยังไม่ได้อ่าน ขอให้ไปอ่านตาม Link ด้านล่างนี้ก่อนนะครับ เนื่องจากเป็นเนื้อหาต่อกัน
การใช้งาน OData service (Part 1) - metadata
เนื้อหาในตอนนี้จะอธิบายถึงการดึงข้อมูลจาก OData ด้วย Method GET ผ่านโปรแกรม Postman ซึ่งจะใช้ตัวอย่าง OData จากตอนที่แล้วก็คือ ZODATA_DEMO_USER_SRV โดยสามารถแยกการดึงข้อมูลจาก OData service ออกมาได้เป็น 2 วิธีด้วยกัน คือ
1. GET EntitySet อย่างที่ได้อธิบายไปในตอนที่แล้วว่า EntitySet เปรียบเสมือน Table ดังนั้นเราสามารถดึงข้อมูลผ่าน OData service แบบเป็น Table หรือหลายๆ Record ได้โดยการส่งคำสั่ง GET EntitySet ผ่าน URL ด้วยรูปแบบนี้
http(s)://[hostname]:[port]/sap/opu/odata/[namespace]/[OData service]/[EntitySet][Query options]
และถ้าอิงจากตัวอย่าง ZODATA_DEMO_USER_SRV ก็คือ
http(s)://[hostname]:[port]/sap/opu/odata/sap/ZODATA_DEMO_USER_SRV/UserSet
ซึ่งเราทดสอบ URL ข้างต้นด้วย Postman โดยการใช้ method GET ก็จะได้ผลลัพธ์ดังนี้
เนื่องจาก OData สามารถรองรับได้ทั้ง XML และ JSON ทำให้เราสามารถดึงข้อมูลแบบ JSON ได้โดยการใส่ Query options เพิ่มคือ ?$format=json ตามตัวอย่างด้านล่าง
http(s)://[hostname]:[port]/sap/opu/odata/sap/ZODATA_DEMO_USER_SRV/UserSet?$format=json
ก็จะได้ผลลัพธ์ออกมาในรูปแบบ JSON ดังนี้
ซึ่งการดึงข้อมูลในรูปแบบ JSON นี้จะช่วยให้เรานำไปใช้งานต่อได้สะดวกขึ้นมาก โดยเฉพาะในภาษา Javascript
2. GET Entity เป็นการดึงข้อมูลเฉพาะ Record นั้นๆ ตาม Key ที่ส่งไป โดยการส่งคำสั่ง GET Entity สามารถทำผ่าน URL ได้ด้วยรูปแบบนี้
http(s)://[hostname]:[port]/sap/opu/odata/[namespace]/[OData service]/[EntitySet]([Key1]='[Value]', [Key2]='[Value]', ...)[Query options]
และถ้าอิงจากตัวอย่าง ZODATA_DEMO_USER_SRV ซึ่ง Key คือ Uname (เราสามารถรู้ Key ของแต่ละ Entity ได้จาก metadata ในบทความ Part 1) ก็จะได้ตัวอย่าง URL ดังนี้
http(s)://[hostname]:[port]/sap/opu/odata/sap/ZODATA_DEMO_USER_SRV/UserSet(Uname='test02')?$format=json
และเนื่องจาก Entity User นี้มี Key ฟิลด์ๆเดียว เราสามารถระบุแบบด้านล่างนี้ได้เลย
http(s)://[hostname]:[port]/sap/opu/odata/sap/ZODATA_DEMO_USER_SRV/UserSet('test02')?$format=json
ลองทำการทดสอบด้วย Postman ก็จะได้ผลลัพธ์เป็นของเฉพาะ Record ที่มี Key Uname = 'test02' ดังด้านล่างนี้
ในบทความนี้ได้อธิบายถึงการดึงข้อมูลด้วย method GET EntitySet ซึ่งเป็นการดึงแบบหลายๆ Record และ GET Entity ซึ่งเป็นการดึงทีละ Record และวิธีการเปลี่ยน format ให้เป็น JSON ซึ่งในบทความต่อๆไปผมจะขอใช้ format JSON เป็นหลักเนื่องจากสามารถดูแล้วเข้าใจได้ง่ายกว่า และนำไปพัฒนาต่อยอดใน Application ต่างๆได้สะดวกมากกว่า
และในตอนต่อไปจะเป็นการ Create, Update และ Delete ข้อมูลผ่าน OData service
ความคิดเห็น
แสดงความคิดเห็น