OData vs GraphQL

OData vs GraphQL,odata,graphql,Odata,Graphql,GraphQL和OData在性能、开发人员可用性、社区等方面是否有很好的比较。。我在网上找到的所有文章都很偏颇 返回大量JSON或二进制数据的最佳方法是什么?我已经研究并尝试使用DotNet中的GraphQL和DotNet Web API中的Odata来创建一个工作演示,我发现的是 开发人员可用性考虑到您拥有现有的WebAPIDotNet框架,并且希望迁移到GraphQL或OData兼容的WebAPI,那么我的答案是选择OData,因为它易于集成,并且具有现成的筛选、排序、选择、扩展等功能。如果

GraphQL和OData在性能、开发人员可用性、社区等方面是否有很好的比较。。我在网上找到的所有文章都很偏颇


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

我已经研究并尝试使用DotNet中的GraphQL和DotNet Web API中的Odata来创建一个工作演示,我发现的是

开发人员可用性考虑到您拥有现有的WebAPIDotNet框架,并且希望迁移到GraphQL或OData兼容的WebAPI,那么我的答案是选择OData,因为它易于集成,并且具有现成的筛选、排序、选择、扩展等功能。如果您选择GraphQL,那么您必须做很多工作,比如创建类型、模式和查询,并为每个查询实现解析器。 性能取决于查询逻辑。GraphQL和Odata都能够在Odata中使用$select获取您的请求,在GraphQL中,您可以通过其查询约定进行请求。 API从头开始开发,如果您希望所有API请求只使用一个端点,而不希望维护版本控制端点、自动建议字段名和模式类型,那么GraphQL是最佳选择。但每个框架和社区的GraphQL库的可用性因技术而异,例如。nodejs、C、Ruby、Java等 是的,我已经复习并阅读了一篇文章,其中详细描述了。 比较PDF 我附上并排比较图像,只有你们可以在参考链接中挖掘细节

标准API 在这里,没有API版本控制/维护是积极的,这意味着单端点和摆脱两个版本的API

查询能力 表面性能 当您希望以最少的CRUD操作工作量提供对数据库的访问时,主要使用OData服务


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

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


GraphQL中为发出请求而传输的数据量比OData中大得多。尽管如此,结果响应是相同的。

-非常有用的大型请求,您正在使用HTTP POST查询数据,这感觉很脏。它感觉脏,但在API成熟后,您至少会在OData端点上执行一些自定义操作,您必须将参数发布到这些操作,以便检索特定的数据集。我100%支持OData,但GraphQL确实解决了一些自定义操作的需要,这些自定义操作用于处理复杂的查询,而这些查询是通过Url约定无法完成的。我知道这是一个古老的答案,但GraphQL现在似乎支持过滤和排序。是的,OData支持的带有GraphQL的现成过滤器,使用我们的逻辑,我们可以实现