架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1147|回复: 0

[交流] 【转】OData – OData vs GraphQL

[复制链接]
发表于 2023-5-20 20:28:50 | 显示全部楼层 |阅读模式
GraphQL 很火, 很厉害, 但是它和 OData 有本质的区别. 所以并不是说任何一样对比另一个绝对的好.



有几个点是我能 Get 的到的.

OData = SQL in URL

641294-20220103174915696-303369371.png

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

641294-20220103175220010-2063619824.png

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

Flaws in OData

641294-20220103180454536-1808760014.png

OData 通常和 database schema 邦的比较紧 (所以说它像 SQL Query), 一旦 schema 换了, 但又想维护旧的版本会比较难.

OData 偏向统一管理, 很难对特殊案例做优化.

最好的描述

641294-20220103180653441-1667511368.png

OData 像 SQL Query, GraphQL 像 stored procedure. 你慢慢品.

所以这 2 者一定是共存的, 而且是互相补助的.

641294-20220103180949356-85312088.png

总结

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 的基本知识
https://www.itsvse.com/thread-10508-1-1.html





上一篇:C# EPPlus 批量设置单元格样式
下一篇:ASP.NET Core(十九)使用 BackgroundService 运行后台任务
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-6-1 23:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表