OData – OData vs GraphQL
GraphQL 很火, 很厉害, 但是它和 OData 有本质的区别. 所以并不是说任何一样对比另一个绝对的好.
有几个点是我能 Get 的到的.
OData = SQL in URL

OData was a way to serialize a SQL statement into a URL (OData 就像 SQL 语句的 URL 版本)
it challenging to limit the exposure 要限制 client side 的 query 能力是很困难的.
OData Standardized

OData 的规范是它的优势, 就好比 RPC 对 RESTful一样. RESTful 有规范, 容易理解, 但是不容易表达万物. RPC 则可以表达万物, 但又太没有规范了.
Flaws in OData

OData 通常和 database schema 邦的比较紧 (所以说它像 SQL Query), 一旦 schema 换了, 但又想维护旧的版本会比较难.
OData 偏向统一管理, 很难对特殊案例做优化.
最好的描述

OData 像 SQL Query, GraphQL 像 stored procedure. 你慢慢品.
所以这 2 者一定是共存的, 而且是互相补助的.

总结
OData 像 SQL Query, GraphQL 像 stored procedure.
OData 像 RESTful, GraphQL 像 RPC
当你希望简单统一的时候, 你会觉得 RESTFul 很棒, SQL Query 就够用了, OData 很好.
但当你遇到特别情况, 没办法用简单的方式的时候, RPC, stored procedure, GraphQL 就凸显它的魅力了.
我们看双方的使用场景. OData 倾向于企业应用的 API, SAP 这类. 通常是比较简单的, 关系数据库 pattern.
GraphQL 则是互联网应用, 公开的 API, whatever 类型数据形式的 (比如 NoSQL)
所以总结 GraphQL 比 OData 可以表达更多 (更自由), OData 比 GraphQL 有规则 (更约束)
到底是哪一个, 还是对外 GraphQL, 对内用 OData, 真的是看项目用了才知道呢.
OData – OData vs GraphQL的更多相关文章
- Asp.net core 学习笔记 ( OData )
2018-12-10 更新 : 从前我都是把 entity 直接用于 odata 曝露 api 给程序用. 如果这个程序是我们自己写的前端,这样的方式非常好,因为就好比前端可以直接对数据库每一个表做操 ...
- OData的初步认识
What – OData是什么? OData - Open Data Protocal,是一个设计和使用RESTful API的标准.REST本身只是一个构建web服务的思想和理念,其没有规定一个统一 ...
- OData V4 系列 服务创建
OData 学习目录 创建应用程序 添加引用 install-package entityframework . Install-Package Microsoft.AspNet.Odata . In ...
- 在ASP.NET Web API中使用OData
http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...
- 使用ASP.NET Web API 2创建OData v4 终结点
开放数据协议(Open Data Protocol[简称OData])是用于Web的数据访问协议.OData提供了一种对数据集进行CRUD操作(Create,Read,Update,Delete)的统 ...
- OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service & Client
一.概念介绍 1.1,什么是OData? 还是看OData官网的简单说明: An open protocol to allow the creation and consumption of quer ...
- Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
前言 很久没更新博客了,加上刚过年,现在准备重新开战,继续自己的学习之路.本文已同步到Web API2系列文章中http://www.cnblogs.com/aehyok/p/3446289.html ...
- SharePoint 2013 REST 以及 OData 基础
这篇文章会介绍: 简单的介绍REST,OData OData实现细节 OData在SharePoint 2013中的实现 为什么REST很重要 过去几年基于REST的webservice在IT企业越来 ...
- Web service standards: SOAP, REST, OData, and more
Web service standards: SOAP, REST, OData, and more So far, we've covered the components of a web ser ...
- WCF Data Service 使用小结 (一)—— 了解OData协议
最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...
随机推荐
- vscode element-plus/lib/theme-chalk/index.css报错路径找不到
vscode element-plus/lib/theme-chalk/index.css报错路径找不到 import { createApp } from 'vue' import './styl ...
- [oeasy]python0048_注释_comment_设置默认编码格式
注释Comment 回忆上次内容 使用了版本控制 git 制作备份 进行回滚 尝试了 嵌套的控制结构 层层 控制 不过 除非 到不得以 尽量不要 太多层次的嵌套 这样 从顶到底 含义 明确 ...
- 第七节 JMeter基础-高级登录【数据驱动-参数化】
声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改. 背景:一个接口的不同情况,其实就是请求参数不一样.期望结果不一样.把这些不一样的东西都提取出来进行管理,下次可以直接使用.因 ...
- JavaScript小面试~~JavaScript实现图片懒加载,多方式解决加载过多问题
图片懒加载,就是滚动页面时,图片未出现在可视局域时不加载图片,只有图片出现在可视区域才加载. 思路:通过上面一段话,实现图片懒加载需要知道: 绑定滚动事件 可视窗口高度(VH) 图片元素距离可视局域顶 ...
- Jmeter函数助手2-Random
Random函数用于获取随机范围内的正整数或负整数. 一个范围内的最小值:必填,且必须填入整数(正负数都可以) 一个范围内允许的最大值:必填,且必须填入整数(正负数都可以).最大值需大于最小值如[-6 ...
- ByteHouse高性能向量检索实践——“以图搜图”
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着 LLM 技术的发展,向量检索与向量数据库也受到业界持续关注,它们能够为LLM提供外置记忆单元,通过提供与 ...
- 【RabbitMQ】03 订阅模式
Pub / Sub 订阅模式 特点是 一条消息可以给多个消费者接收了 首先创建订阅模式生产者发生一些代码变动: package cn.dzz.pubSub; import com.rabbitmq.c ...
- rllab —— 强化学习 算法模块库 (环境配置失败!!!) (已经不进行维护更新,已被淘汰,由于一些老旧代码还有可能关联因此fork了下,复制了份原始项目)
代码地址: https://gitee.com/devilmaycry812839668/rllab 由于官方代码地址在github上,外网偶尔会出现网络连接中断的问题因此在国内代码库中fork了一个 ...
- 华为超算平台git、cmake、wget、curl报错:SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference——解决方法
最近在使用超算平台时报错,不管是git.cmake.wget.curl中的哪个都报错,大致错误: /usr/bin/cmake3: relocation error: /usr/lib64/libcu ...
- 【转载】 miniImageNet数据集介绍
版权声明:本文为CSDN博主「miguemath」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/wangkai ...