OData与GraphQL

Yar*_*myr 36 odata graphql

在性能,开发人员可用性,社区等方面,GraphQL和OData是否有很好的比较.我在互联网上找到的所有文章都非常偏向.

返回大型JSON或二进制数据的最佳方法是什么?

ano*_*ani 40

是的,我已经阅读并阅读了Telerik的详细描述的文章.我附加比较图像只有你可以在参考链接GraphQL vs OData中挖掘出细节.

标准API

标准API

这里,API版本控制/维护中的否定意味着单个端点并且摆脱了两个版本化的API

查询能力

查询能力

表面能力

表面能力

当您希望以最少的CRUD操作工作量提供对数据库的访问时,主要使用OData服务.

但是,如果您了解Sharepoint REST API和Office 365 REST API它基于OData并提供了广泛的API.现在,Microsoft正在构建通用API,称为Graph API或Microsoft Graph,默认情况下启用CORS请求和统一端点,以从Office 365,Dynamics 365,Outlook Exchange API,Onedrive API等请求.这些也支持OData.

  • 我知道这是旧答案,但 GraphQL 现在似乎支持过滤和排序。https://www.howtographql.com/graphql-js/8-filtering-pagination-and-sorting/ (5认同)

Sil*_*res 15

使用POST方法请求数据似乎也不是一个好主意。显然,向服务器发出请求所需的数据量要大得多。根据Sumit Sarkar文章的示例:

OData示例

GraphQL的示例

在GraphQL中,发出请求进行交易的数据量比在OData中要大得多。虽然,结果(响应)是相同的。

  • 这感觉很脏,但在 API 成熟之后,您最终会在 OData 端点上至少得到一些自定义操作,您必须向这些端点 POST 参数,以便检索一组专门的数据。我 100% 支持 OData,但 GraphQL 确实解决了对某些自定义操作的需求,这些操作用于处理无法通过 Url 约定执行的复杂查询。 (4认同)
  • 但话又说回来,JSON 比 URL 查询字符串灵活得多,并且更具可读性。 (4认同)
  • 较大的请求,并且您正在使用 HTTP POST 查询数据,这感觉很脏。 (2认同)