Saya mencoba memahami titik Odata dan kapan itu masuk akal. Saat ini cara saya bekerja adalah saya menggunakan ASP.NET dan MVC / WebApi controller untuk membuat serial / deserialize objek ke dalam JSON dan meminta javascript melakukan sesuatu dengannya.
Dari apa yang saya tahu manfaat dari OData adalah dapat meminta langsung dari URL ... Tapi karena saya menulis kode klien dan server tidak perlu untuk itu.
Adakah yang akan mem-parsing hasil permintaan ODaya di javascript ??
Mungkin OData lebih lanjut tentang menyediakan titik akhir generik untuk SEMUA klien untuk mendapatkan informasi terperinci dari kueri yang tidak disediakan JSON? Jadi jika saya adalah penyedia data maka saya kira itu untuk apa odata?
Bantu saya memahami tujuan dan penggunaan REST / JSON / ODATA.
sumber
Jawaban:
JSON hanyalah format pertukaran data berdasarkan JavaScript.
REST adalah gaya arsitektur sedangkan OData adalah implementasi khusus dari REST yang dirancang untuk menghasilkan dan menggunakan data, yang mendukung dua format, AtomPub dan JSON.
Jadi perbedaan antara JSON dengan REST polos dan OData adalah opsi dalam OData untuk manipulasi data misalnya, jika kita query data menggunakan protokol OData, kita dapat menentukan opsi di bawah ini di URI,
Kita dapat melakukan proyeksi, menautkan sumber daya, dll. Dan semua opsi ini tersedia di luar kotak. Sekarang bayangkan jika kita harus menyediakan semua fitur ini di layanan REST kita sendiri maka kita harus,
Ini tidak hanya banyak pekerjaan tetapi juga mengarah pada ketidakkonsistenan dan menciptakan kurva pembelajaran bagi konsumen data kami.
sumber
Notasi Objek JSON atau JavaScript hanyalah format atau standar untuk data. Ini adalah format yang disepakati untuk mentransmisikan sesuatu seperti nama login ATAU sesuatu yang perlu dikonsumsi oleh Layanan REST.
Lihat bagian ini: http://en.wikipedia.org/wiki/JSON
Ini bukan bagian dari bahasa pemrograman tertentu, jadi sistem yang berbeda dapat dengan mudah menyampaikan data, jika mereka tahu mereka menggunakan JSON.
Adapun REST itu hanya gaya arsitektur yang digunakan untuk layanan web.
Lihat bagian ini: http://en.wikipedia.org/wiki/Representational_state_transfer
Salah satu cara untuk memikirkan hal ini, adalah jika Anda ingin menulis layanan web yang dapat digunakan oleh banyak komputer yang berbeda .. dan bertukar informasi. Anda dapat menulis layanan web Anda untuk menerima data melalui URL
Respons kembali bisa berupa objek JSON yang menandakan data Anda diterima.
Saya belum pernah mendengar tentang OData, jadi saya mencarinya di Google:
Kedengarannya seperti OData adalah sesuatu yang ditulis untuk menambah arsitektur gaya REST vanilla .. Tapi sepertinya itu dapat memberi Anda beberapa hal tambahan untuk membuat Anda pergi, daripada harus menulis sesuatu dari awal dalam C # atau bahasa apa pun yang Anda gunakan.
Jika Anda bekerja mendorong Anda untuk menggunakan OData, Anda masih akan menggunakan JSON..tapi dalam kerangka / standar OData yang ditulis oleh Microsoft et al.
Ya, karena (sepertinya) menggunakan JSON. Sangat wajar untuk menggunakan JS.
Odata akan menyediakan layanan REST .. tetapi dengan beberapa layanan standar tambahan di atas titik akhir layanan REST "generik" polos .. klien tidak peduli jika Anda menggunakan OData, atau menggulir layanan C # Anda sendiri .. selama karena responsnya dalam format yang disepakati (seperti JSON). Namun, untuk pekerjaan Anda mungkin mereka ingin menggunakan OData karena menyediakan banyak fitur 'di luar kotak'.
sumber
Untuk pertanyaan "mengapa", ada definisi yang sangat bagus dalam buku RESTful Web APIs - pada dasarnya OData mengimplementasikan pola pengumpulan, di mana koleksi adalah sumber daya yang menyediakan daftar sumber daya melalui tautan.
sumber
OData adalah implementasi spesifik dari layanan RESTful dengan standar untuk antarmuka. Keuntungannya adalah ketika Anda mengekspos API produk Anda dan mengatakan itu sesuai dengan standar OData, untuk pengguna yang sudah terbiasa dengan OData dapat menggunakannya dengan mudah tanpa menghabiskan banyak waktu untuk membaca dokumentasi API.
Kerugian: Meskipun OData hebat dalam mengekspos database yang mendasarinya, spesifikasi tidak termasuk dukungan untuk transaksi dan tidak dapat digunakan dalam aplikasi di mana kita dapat memiliki layanan yang tenang berfungsi sebagai antarmuka DB maupun antarmuka transaksi.
sumber