GraphQL sangat populer, sangat kuat, tetapi pada dasarnya berbeda dari OData. Jadi bukan berarti ada yang benar-benar lebih baik dari yang lain.
Ada beberapa poin yang bisa saya dapatkan.
OData = SQL dalam URL
OData adalah cara untuk membuat serialisasi pernyataan SQL ke dalam URL
Sulit untuk membatasi kemampuan kueri sisi klien.
OData Standar
Spesifikasi OData adalah kekuatannya, seperti yang dilakukan RPC untuk RESTful. RESTful memiliki spesifikasi dan mudah dipahami, tetapi tidak mudah untuk mengungkapkan semuanya. RPC dapat mengekspresikan segalanya, tetapi terlalu tidak standar.
Kekurangan dalam OData
OData biasanya lebih ketat daripada status skema database (jadi seperti SQL Query), dan setelah skema diubah, lebih sulit untuk mempertahankan versi lama.
OData lebih memilih manajemen terpadu, dan sulit untuk dioptimalkan untuk kasus khusus.
Dijelaskan dengan baik
OData seperti SQL Query, GraphQL seperti prosedur tersimpan. Anda mencicipi perlahan.
Oleh karena itu, keduanya harus hidup berdampingan dan saling melengkapi.
ringkasan
OData seperti SQL Query, GraphQL seperti prosedur tersimpan.
OData seperti RESTful, dan GraphQL seperti RPC
Ketika Anda menginginkan penyatuan sederhana, Anda akan menemukan RESTFul hebat, SQL Query sudah cukup, OData bagus.
Tetapi ketika Anda memiliki situasi khusus dan tidak dapat menggunakan metode sederhana, RPC, prosedur tersimpan, GraphQL menyoroti pesonanya.
Mari kita lihat skenario penggunaan kedua belah pihak. OData cenderung menjadi API untuk aplikasi perusahaan, seperti SAP. Biasanya pola database relasional yang lebih sederhana.
GraphQL adalah aplikasi Internet, API yang terekspos, dan jenis data apa pun (seperti NoSQL)
Jadi singkatnya, GraphQL dapat mengekspresikan lebih banyak (lebih bebas) daripada OData, OData memiliki aturan (lebih banyak kendala) daripada GraphQL
Yang mana itu, atau GraphQL untuk dunia luar, atau OData untuk internal, itu sangat tergantung pada proyek untuk menggunakannya.