Apa perbedaan oData dengan layanan REST?

15

Saya sedang mencari untuk menulis API layanan web dan saya berpikir untuk membuat layanan REST. Apa artinya OData dalam konteks ini? Bisakah Anda jelaskan perbedaan antara OData dan REST?

gyurisc
sumber
lihat: odata.org
NoChance

Jawaban:

11

REST adalah arsitektur untuk cara mengirim pesan bolak-balik dari klien ke server menggunakan HTTP. OData adalah standar yang diperjuangkan oleh Microsoft yang menggunakan arsitektur REST untuk mengirim jenis pesan tertentu melalui HTTP. OData berbicara tentang seperti apa tampilan pesan (konten). REST adalah arsitektur bagaimana pesan-pesan itu dikirim bolak-balik.

RasionalGeek
sumber
5

Saya setuju dengan @jkohlhepp dan @Tom Squires, meskipun akan menambah beberapa detail.

OData adalah standar terbuka (diperjuangkan oleh Microsoft, tetapi diadopsi di luar Microsoft, dan tersedia untuk banyak platform, termasuk iOS dan Android).

Payload OData didasarkan pada format Atom (baca) dan AtomPub (pembaruan). (Sebagai tambahan, Atom juga merupakan dasar untuk format umpan RSS yang populer.) Atom dapat dikembangkan, dan OData telah memanfaatkan ini untuk membuat ekstensi terkenal. Misalnya, dengan layanan OData ada Konvensi URI dengan banyak kemampuan, seperti pemfilteran (filter menurut tanggal, atau nama pelanggan) dan pengurutan dan sebagainya. Menggunakan konvensi khusus ini dengan cara standar (yang didefinisikan OData) membuat OData kuat karena mereka bertindak serupa dan kita dapat membangun alat untuk bekerja melawan mereka dan semacamnya.

Ada beberapa sumber OData terkenal yang tersedia, seperti oleh Netflix (semua data film mereka ada - bisa menyenangkan untuk dimainkan!).

Baca semua tentang OData di odata.org .

Semoga berhasil! -Tagihan

codingoutloud
sumber
4

REST adalah Gaya Arsitektur membangun Layanan Web. Itu hanya model yang mengatakan bahwa Anda dapat menggunakan HTTP dan kata kerjanya (POST / PUT / DAPATKAN dll) untuk melakukan CRUD pada Sumber Daya yang diekspos oleh Layanan Anda. Tetapi REST tidak memiliki perincian tentang bagaimana URL akan terlihat, bagaimana cara meminta / menanggapi format akan terlihat, bagaimana cara menanyakan informasi atau pada tingkat dasar seperti apa operasi dan sumber daya yang didukung layanan pada awalnya!

Dalam dunia layanan web berbasis XML, kami memiliki SOAP, WSDL, WS- * yang menentukan standar yang memungkinkan interoperabilitas di berbagai layanan dan klien mereka.

OData sedang mencoba melakukan ini untuk layanan web berbasis REST.

Ini mendefinisikan $ metadata dalam format CSDL untuk menjelaskan apa (entitas / kompleks) jenis yang didukung layanan Anda dan properti mereka, tipe datanya, bagaimana tipe Anda terkait, dan jika layanan Anda juga mendukung beberapa operasi khusus di luar CRUD tradisional.

OData membakukan format URL untuk sumber daya Anda yaitu,, / Entitas, / Entitas ('id') atau / Entitas (key1 = value1, key2 = value2) ... dan seterusnya ..

OData menstandarkan format permintaan / respons dalam JSON dan AtomXml tentang bagaimana data dan metadata terstruktur.

OData juga menentukan bahasa permintaan yang sangat kaya untuk memungkinkan konsumen meminta layanan Anda untuk informasi akurat yang mereka cari - dengan bantuan $ filter, $ orderby, $ skip, $ top, $ expand.

OData membantu Anda menggambarkan seluruh Model Data Anda - Entitas dan Hubungannya serta mendukung semua jenis operasi seperti CREATE, UPDATE, DELETE, GET, MERGE, dan bahkan OPERASI KUSTOM pada Entitas dan / atau Hubungan ini.

OData v4 sekarang menjadi standar OASIS yang banyak perbaikan di atas versi sebelumnya. Ekosistem untuk OData perlahan-lahan tumbuh.

Anil G
sumber
2

OData adalah standar yang dipuji menggunakan REST.

Tom Squires
sumber