GraphQL或REST

GraphQL或REST,rest,graphql,Rest,Graphql,有人尝试过开发一个图形ql而不是RESTfulAPI吗?有人能给现实生活(不仅仅是理论上的)正反两面吗。基本上,从我的研究中我发现,图形ql的力量就是要得到你所需要的东西,而不需要更多。如果使用RESTAPI,您通常需要发出一系列请求,并且您可以轻松获得比实际需要更多的信息 花在研究和学习GraphQL上的时间值得吗?有没有引起您注意的bug或showtopper?这个问题主要是基于意见的 但根据我的经验: 一个RESTful API上针对一件事情的多个请求通常表明API设计中存在缺陷,即所需的

有人尝试过开发一个图形ql而不是RESTfulAPI吗?有人能给现实生活(不仅仅是理论上的)正反两面吗。基本上,从我的研究中我发现,图形ql的力量就是要得到你所需要的东西,而不需要更多。如果使用RESTAPI,您通常需要发出一系列请求,并且您可以轻松获得比实际需要更多的信息


花在研究和学习GraphQL上的时间值得吗?有没有引起您注意的bug或showtopper?

这个问题主要是基于意见的

但根据我的经验: 一个RESTful API上针对一件事情的多个请求通常表明API设计中存在缺陷,即所需的资源不可用,因此需要从不同的资源收集内容来弥补这一缺陷

可以用GraphQL轻松替换的REST-API表明,该API实际上是一个CRUD-HTTP-API,在REST福音派中被认为是一种反模式

另外值得注意的是,GraphQL将责任放在客户机上,因为支持API被简化为只需要查询的数据存储。另一方面,REST加强了客户的行为,因此减少了客户的责任。客户端被简化为类似于浏览器的东西


在某些情况下,一种或另一种方法会产生更好的结果,但这在很大程度上取决于您的情况。

另请参见您说的对RESTful API的多个请求(仅针对一件事)通常表明API设计中存在缺陷,也就是说,所需的资源不可用,因此需要从不同的资源中收集材料来补偿这一点最初,每个团队都会创建优化的端点(即获取所有整合数据)。但我们需要更多的客户数据,这在初始阶段是不需要的,然后,我们使用现有端点并进行多次调用,而不是创建一个新的优化端点。因此,对于rest,我们必须在这里做更多的工作,即使我们避免了多次调用。我相信使用GraphQL变得非常容易。关键是,如果你想推动客户机行为,你必须支持rest,如果你不在乎你的数据用于什么,GraphQL是一个可行的选择。REST的坏名声在很大程度上来自于“所谓的RESTAPI”,因为它们的资源都是数据库enities的代表。当然,优化或添加资源(不一定是端点)需要一些工作,但从技术上来说,这是一件容易的事情。我同意。另一方面,你说REST的坏名声很大程度上来自“所谓的REST api”,因为它们的资源是数据库enitites的表示。我的观点是,即使它们只是数据库实体的表示,调用REST api有什么不对?它们缺乏超媒体(文本和控件(例如链接))。