web-services - 不同类型的网络服务

标签 web-services graphql

我在网上找到的主要网络服务类型是:

  • SOAP Web 服务
  • RESTful 网络服务

我的问题(可能很愚蠢)是,为什么在提到 Web 服务类型时,任何答案中都没有提到 GraphQL?

最佳答案

GraphQL 来自 Facebook,它为 Web 服务 API 提供了替代解决方案。基本上,它是一种 Web API 的查询语言。它不是网络服务。它比 REST 有优势,并且还有其他附加功能。 GraphQL 比 SOAP 轻一些,而 SOAP 是一种基于标准的 Web 服务访问协议(protocol)。

与 REST 不同,GraphQL 提供了一种解决方案,在您可能需要多次往返服务器的情况下通过一个请求来避免多次往返服务器,并且还可以使用 GraphQL 来仅获取所需的数据从而解决客户端“过度获取”和“不足获取”的问题,进而有助于系统性能的提升。

GraphQL 旨在使用 GraphQL 模式语言表示图形中的数据(节点和边的集合表示业务域),并避免像典型 RDBMS 那样使用列和行。该架构反过来又有助于弥合前端和后端开发人员之间的差距。

然而,GraphQL 在服务器端缓存方面面临着挑战,因为在 REST 中,数据结构是相同的,但在 GraphQL 中,前面的客户端请求可能不清晰,因为它将更具体于操作。

关于web-services - 不同类型的网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68508904/

相关文章:

ruby-on-rails - 在 GraphQL/Rails 中如何在 query_type 中传递参数?

javascript - 如何在 graphql 查询中使用带有变量的 % 符号

Angular 4.3.4 httpclient 返回 null 作为订阅,但我在网络上得到了有效的 http 响应

php - 使用 Retrofit 发送图像文件帖子?

java - WAR部署失败

java - GraphQL错误: Expected a user-defined GraphQL scalar type with name 'FileUpload' but found none

sql - 在 SQL 表中有一个专用的计数字段是否可取?

web-services - Hybris 电子商务通过查询字符串将产品添加到购物车

web-services - Web开发中前端、后端和中间件的区别

json - 如何在 swift 4 中使用 Graphql 获取 json 值数组?