ฉันกำลังมองหาการเขียน API บริการเว็บและฉันกำลังคิดที่จะสร้างบริการ REST OData หมายถึงอะไรในบริบทนี้ คุณช่วยอธิบายความแตกต่างระหว่าง OData กับ REST ได้ไหม?
ฉันกำลังมองหาการเขียน API บริการเว็บและฉันกำลังคิดที่จะสร้างบริการ REST OData หมายถึงอะไรในบริบทนี้ คุณช่วยอธิบายความแตกต่างระหว่าง OData กับ REST ได้ไหม?
คำตอบ:
REST เป็นสถาปัตยกรรมสำหรับวิธีการส่งข้อความไปมาจากไคลเอนต์ไปยังเซิร์ฟเวอร์โดยใช้ HTTP OData เป็นแชมเปี้ยนมาตรฐานโดย Microsoft ที่ใช้สถาปัตยกรรม REST เพื่อส่งข้อความบางประเภทผ่าน HTTP OData พูดถึงข้อความที่ดูเหมือน (เนื้อหา) REST เป็นสถาปัตยกรรมของการรับและส่งข้อความเหล่านั้นไปมา
ฉันเห็นด้วยกับ @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
โชคดี! -บิล
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 เติบโตอย่างช้าๆ
OData เป็นมาตรฐานโดยนัยโดยใช้ REST