การใช้งาน OData service (Part 1) - metadata

    การเรียกใช้งาน OData service โดยปกติแล้วจะถูกเรียกผ่าน Application ต่างๆ เช่น Fiori App ของ SAP หรือเป็น Application ภายนอกที่ต้องการเข้ามาเรียกใช้ Service ของ SAP เป็นต้น แต่เพื่อความสะดวกในการอธิบายเนื้อหาในบทความต่อๆไป ผมขออธิบายการใช้งานโดยผ่านโปรแกรม Postman ซึ่งเป็นโปรแกรมที่ใช้สำหรับทดสอบ Web service ต่างๆ โดยสามารถไป Download ได้ฟรีตาม Link ด้านล่างนี้ครับ    

   https://www.postman.com/downloads/

    และสำหรับใครที่ยังไม่ทราบว่า OData คืออะไร สามารถเข้าไปอ่านในบทความด้านล่างนี้ได้เลยครับ

    OData คืออะไร

    หลังจากเราได้ติดตั้ง Postman และ Sign in เรียบร้อยแล้ว เราจะมาทดสอบ OData กัน โดย OData ที่จะใช้ทดสอบในที่นี้ มีชื่อว่า ZODATA_DEMO_USER_SRV (การสร้าง OData ผมจะขอไปอธิบายในบทความถัดไป ซึ่งจะเป็นการสร้างจากระบบ SAP)

    โครงสร้าง URL ของ OData service ใน SAP จะประกอบด้วย

    http(s)://[hostname]:[port]/sap/opu/odata/[namespace]/[OData service]/[EntitySet][Query options]

    โดยในส่วนของ hostname, port สามารถดูได้ที่ T-code SMICM และในส่วนของ Namespace, OData service สามารถดูได้ที่ T-code /IWFND/MAINT_SERVICE

    EntitySet ของ OData เปรียบเสมือน Table ที่ใช้ในการรับส่งข้อมูล โดยปกติ Table ก็จะต้องมี Structure เพื่อบอกว่ามี Fields อะไรบ้าง ซึ่ง Structure ในที่นี้ก็คือ EntityType โดยเราสามารถดู EntitySet และ EntityType ทั้งหมดของ OData ได้ด้วย method GET คำสั่ง $metadata ดังตัวอย่าง URL ด้านล่างนี้

    http(s)://[hostname]:[port]/sap/opu/odata/sap/ZODATA_DEMO_USER_SRV/$metadata

    ซึ่งการเรียกใช้งาน OData service ทุกครั้งจำเป็นต้องระบุ User/Password ของ Web server ในที่นี้ก็คือระบบ SAP โดยตัวอย่างการใช้ $metadata ผ่าน Postman เราก็จะระบุในส่วนของ Authorization>Basic Auth ดังรูป


    ก็จะได้ผลลัพธ์เป็น XML อยู่ในส่วนของ Response Body ดังนี้


    จาก XML ด้านบน สามารถอธิบายได้จาก Tag หลักๆดังนี้
    - Tag EntitySet ซึ่ง Tag นี้จะบอกว่า OData มี EntitySet อะไรบ้าง ในที่นี้คือ UserSet(เปรียบเสมือน Table ที่ใช้รับส่งข้อมูล) และมีการระบุในส่วนของ Property ว่า EntityType ของ EntitySet นี้มีชื่อว่า User(เปรียบเสมือน Structure ของ Table)
    - Tag EntityType ซึ่ง Tag นี้จะบอกถึงโครงสร้างของ EntityType ในตัวอย่างนี้คือ User ซึ่งประกอบไปด้วย Item Tag ซึ่งก็คือ Field ต่างๆของ EntityType นี้ จากตัวอย่างบอกได้ว่า EntityType User ประกอบไปด้วย Field ดังนี้
    1) Uname เป็น Key Field
    2) Password
    3) Name
    4) IsAdmin
    5) Timestamp

    ในบทความนี้จะอธิบายในส่วนของโครงสร้าง URL ในการใช้งาน OData service และการดูว่า OData นั้นๆประกอบไปด้วยโครงสร้างข้อมูลแบบไหนบ้างผ่านทาง metadata
    และสำหรับการดึงผ่าน OData service สามารถติดตามต่อได้ที่ Part ต่อไปนะครับ


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

OData คืออะไร

การทำ Footer Floating ใน SAP Smartform