云原生架构 - 另一种 API 范式 GraphQL

Posted 云原生兴趣小组

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生架构 - 另一种 API 范式 GraphQL相关的知识,希望对你有一定的参考价值。


基于场景常见的微服务的API范式:REST、GraphQL、Webhooks和gRPC。


在诸多选择中,REST可能是最广为人知的,因为它在Web API中应用十分广泛。REST对于相当大范畴的API来说是一个非常好的标准。


但在一些需要API设计风格更细致入微的场景,还有其他的标准可供选择。比如我们今天要聊的GraphQL, GraphQL的一个巨大好处,是在默认情况下,它通常只发送最小请求,而REST通常发送完整请求(即默认同时发送它拥有的所有内容)。正因为如此,GraphQL在一些特定的用例中更加适用,在这些场景中,需要更明确的数据类型定义,并且倾向于使用较小的数据包来进行传输。


  1. GraphQL 范式的特点


GraphQL 范式优点

  • 所见即所得

  • 减少网络请求次数

  • 代码即文档

  • 参数类型强校验

缺点:缓存,复杂性

适用场景:面向移动端的服务请求

RESTful 范式的缺陷

  • 扩展性,单个RESTful接口返回数据越来越臃肿

  • 多次请求,占用网络资源,响应慢


二、初识 GraphQL


GraphQL 的实现能让客户端获取以结构化的方式,从服务端结构化定义的数据中只获取想要的部分的能力。


符合 GraphQL 规范的实现我称之为 GraphQL 引擎。


这里的服务端不仅指网络服务,用 GraphQL 作为中间层数据引擎提供本地数据的获取也是可行的,GraphQL 规范并没有对数据源和获取方式加以限制。


操作模型:GraphQL 规范中对数据的操作做了定义,有三种,query(查询)、mutation(变更)、subscription(订阅)。


云原生架构 - 另一种 API 范式 GraphQL


二、GraphQL 体验:Github V4 API

云原生架构 - 另一种 API 范式 GraphQL


Explorer - GitHub Docs

           云原生架构 - 另一种 API 范式 GraphQL            

                       

                       


以上是关于云原生架构 - 另一种 API 范式 GraphQL的主要内容,如果未能解决你的问题,请参考以下文章

云原生应用架构的迁移 一 :增量迁移范式

云原生应用架构的迁移 一 :增量迁移范式

分布式云×云原生,华为云打造云基础设施新范式

开发范式大转移,云原生开发者如何把握技术脉络?

云原生架构中的Web及Web API安全

云原生的设计哲学