Rest GraphQL是无状态的吗?

Rest GraphQL是无状态的吗?,rest,graphql,Rest,Graphql,出于好奇,我开始阅读GraphQL。基于上的示例,我觉得它像RESTAPI请求。它是无国籍的吗?意味着它没有来自服务器的请求和响应?如果是,那么它为什么比REST API更节省资源呢?GraphQL通常被称为比REST更高效,因为它允许客户端在一个请求中请求多个资源,这节省了往返时间,还允许客户端只过滤到他们实际需要的字段。因此,在一天结束时,完成请求的方式似乎相似,但更强大的查询语言允许客户机准确地获取他们需要的数据,而不需要更多 是的,它和REST一样是无状态的。事实上,有些人可能会说Gra

出于好奇,我开始阅读GraphQL。基于上的示例,我觉得它像RESTAPI请求。它是无国籍的吗?意味着它没有来自服务器的请求和响应?如果是,那么它为什么比REST API更节省资源呢?

GraphQL通常被称为比REST更高效,因为它允许客户端在一个请求中请求多个资源,这节省了往返时间,还允许客户端只过滤到他们实际需要的字段。因此,在一天结束时,完成请求的方式似乎相似,但更强大的查询语言允许客户机准确地获取他们需要的数据,而不需要更多

是的,它和REST一样是无状态的。事实上,有些人可能会说GraphQL满足了REST描述的许多原始需求

它是无国籍的吗

是的,只要服务器不需要任何关于客户端状态的知识就可以正确解释请求;所有必要的信息都包含在请求本身(头和正文)中

对我来说,它看起来像RESTAPI请求

可能没有。它在超媒体约束上完全失败(该规范没有任何链接参考,这是一个很大的提示)。“资源”有点混乱

HTTP通常与REST相关联,REST使用“资源”作为其核心概念。相反,GraphQL的概念模型是一个实体图。因此,GraphQL中的实体不由URL标识

因此,您可以得到许多不同的URI,它们指向实体图的不同子集的表示,以及一个用于图的所有修改的URI。在统一接口后面,这些“资源”都将使用单一路由实现


,“根据它们在候选体系结构上产生的属性进行选择。”看起来GraphQL对一组不同的属性感兴趣;也就是说,他们正试图解决另一类问题。

这里有几个问题:1。许多被人们称为REST的API不支持HATEOAS或链接,人们称它为REST,2。您可以完全通过带有查询参数的GET请求发送GraphQL查询,这些请求可以像往常一样缓存。不太相关的问题:因为它们都基于HTTP,所以我仍然可以使用Oauth 2.0和OpendID connect令牌的相同实现,对吗?使用GET方法很好;我发现了一份坏的/旧的东西,表明所有东西都在邮寄中。