我在网上找到的主要网络服务类型是:
- 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/