oData ต่างจากบริการ REST อย่างไร


15

ฉันกำลังมองหาการเขียน API บริการเว็บและฉันกำลังคิดที่จะสร้างบริการ REST OData หมายถึงอะไรในบริบทนี้ คุณช่วยอธิบายความแตกต่างระหว่าง OData กับ REST ได้ไหม?


ดู: odata.org
NoChance

คำตอบ:


11

REST เป็นสถาปัตยกรรมสำหรับวิธีการส่งข้อความไปมาจากไคลเอนต์ไปยังเซิร์ฟเวอร์โดยใช้ HTTP OData เป็นแชมเปี้ยนมาตรฐานโดย Microsoft ที่ใช้สถาปัตยกรรม REST เพื่อส่งข้อความบางประเภทผ่าน HTTP OData พูดถึงข้อความที่ดูเหมือน (เนื้อหา) REST เป็นสถาปัตยกรรมของการรับและส่งข้อความเหล่านั้นไปมา


5

ฉันเห็นด้วยกับ @jkohlhepp และ @Tom Squires แต่จะเพิ่มรายละเอียดเล็กน้อย

OData เป็นมาตรฐานแบบเปิด (สนับสนุนโดย Microsoft แต่ได้รับการยอมรับนอกเหนือจาก Microsoft และมีให้ในหลายแพลตฟอร์มรวมถึง iOS และ Android)

ส่วนของข้อมูล OData ขึ้นอยู่กับรูปแบบ Atom (อ่าน) และ AtomPub (อัพเดต) (นอกเหนือจากนี้ Atom ยังเป็นพื้นฐานสำหรับรูปแบบฟีด RSS ยอดนิยม) Atom สามารถขยายได้และ OData ได้ใช้ประโยชน์จากสิ่งนี้เพื่อสร้างส่วนขยายที่รู้จักกันดี ตัวอย่างเช่นด้วยบริการ OData จะมีURI Conventions ที่มีความสามารถมากมายเช่นการกรอง (กรองตามวันที่หรือชื่อลูกค้า) และการเรียงลำดับเป็นต้น การใช้ข้อตกลงพิเศษเหล่านี้ในวิธีมาตรฐาน (กำหนด OData) ทำให้ OData ทรงพลังเนื่องจากมันทำหน้าที่คล้ายกันและเราสามารถสร้างเครื่องมือเพื่อทำงานกับพวกมัน

มีแหล่งที่มาของ OData ที่รู้จักกันดีเช่น Netflix (ข้อมูลภาพยนตร์ทั้งหมดของพวกเขาอยู่ที่นั่น - สนุกกับการเล่น!)

อ่านทั้งหมดเกี่ยวกับ OData ที่odata.org

โชคดี! -บิล


4

REST เป็นรูปแบบสถาปัตยกรรมของการสร้างบริการบนเว็บ เป็นเพียงรุ่นที่บอกว่าคุณสามารถใช้ HTTP และคำกริยา (POST / PUT / GET เป็นต้น) เพื่อดำเนินการ CRUD บนทรัพยากรที่เปิดเผยโดยบริการของคุณ แต่ส่วนที่เหลือไม่มีรายละเอียดใด ๆ เกี่ยวกับวิธีที่ URL ควรมีลักษณะวิธีการร้องขอ / การตอบสนองรูปแบบควรมีลักษณะวิธีการสอบถามข้อมูลหรือในระดับพื้นฐานการดำเนินการและทรัพยากรที่บริการสนับสนุนในตอนแรก!

ในโลกของบริการบนเว็บ XML เรามี SOAP, WSDL, WS- * ซึ่งกำหนดมาตรฐานที่เปิดใช้งานการทำงานร่วมกันระหว่างบริการต่างๆและลูกค้าของพวกเขา

OData พยายามทำเช่นนี้สำหรับบริการบนเว็บที่ใช้ REST

มันกำหนด $ metadata ในรูปแบบ CSDL เพื่ออธิบายว่า (เอนทิตี้ / คอมเพล็กซ์) ประเภทใดที่บริการของคุณสนับสนุนและคุณสมบัติของพวกเขาประเภทข้อมูลประเภทของคุณเกี่ยวข้องกับประเภทใดและบริการของคุณสนับสนุนการดำเนินการพิเศษบางอย่างนอกเหนือจาก CRUD ดั้งเดิม

OData ทำให้รูปแบบ URL เป็นมาตรฐานสำหรับแหล่งข้อมูลของคุณ ได้แก่ / Entity, / Entity ('id') หรือ / Entity (key1 = value1, key2 = value2) ... และอื่น ๆ

OData สร้างมาตรฐานรูปแบบคำขอ / ตอบสนองใน JSON และ AtomXml เกี่ยวกับวิธีจัดโครงสร้างข้อมูลและข้อมูลเมตา

OData ยังระบุภาษาของคิวรีที่สมบูรณ์มากเพื่อให้ผู้บริโภคสามารถค้นหาบริการของคุณสำหรับข้อมูลที่ต้องการได้อย่างแม่นยำด้วยความช่วยเหลือของ $ filter, $ orderby, $ skip, $ top, $ expand

OData ช่วยให้คุณอธิบายรูปแบบข้อมูลทั้งหมดของคุณ - หน่วยงานและความสัมพันธ์ของพวกเขาและสนับสนุนการดำเนินงานทุกประเภทเช่น CREATE, UPDATE, DELETE, GET, MERGE และแม้กระทั่งการทำงานแบบกำหนดเองบนหน่วยงานเหล่านี้และ / หรือความสัมพันธ์

OData v4 ปัจจุบันเป็นมาตรฐาน OASIS ซึ่งมีการปรับปรุงหลายอย่างจากรุ่นก่อนหน้านี้ ระบบนิเวศของ OData เติบโตอย่างช้าๆ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.