数据|是什么让我放弃了Restful API?( 四 )

比如定义了一个输入类型:
 数据|是什么让我放弃了Restful API?
文章图片
前端发送变更请求时就可以使用(通过参数来指定输入的类型):
 数据|是什么让我放弃了Restful API?
文章图片
所以,这样面向对象的设计方式,真的对后端开发人员特别友好!而且前端MVVM框架流行以来,面向对象的设计思想也越来越流行,前端使用Graphql也会得心应手。
Graphql 技术接入架构那么,该怎么设计来接入我们现有的系统中呢?

  • 将Graphql服务直连数据库的方式:最简洁的配置,直接操作数据库能减少中间环节的性能消耗。
 数据|是什么让我放弃了Restful API?
文章图片
直连数据库的接入
  • 集成现有服务的GraphQL层:这种配置适合于旧服务的改造,尤其是在涉及第三方服务时、依然可以通过原有接口进行交互。
 数据|是什么让我放弃了Restful API?
文章图片
集成现有服务的GraphQL层
  • 直连数据库和集成服务的混合模式:前两种方式的混合。
 数据|是什么让我放弃了Restful API?
文章图片
混合接入方式
可以说是非常灵活了!你都不用担心会给你带来任何的麻烦。
服务端实现在服务端, GraphQL 服务器可用任何可构建 Web 服务器的语言实现。有以下语言的实现供参考:
  • C# / .NET
  • Clojure
  • Elixir
  • Erlang
  • Go
  • Groovy
  • Java
  • JavaScript
  • Julia
  • Kotlin
  • Perl
  • PHP
  • Python
  • R
  • Ruby
  • Rust
  • Scala
  • Swift
种类繁多,几乎流行的语言都有支持。
客户端实现在客户端,Graphql Client目前有下面的语言支持:
  • C# / .NET
  • Clojurescript
  • Elm
  • Flutter
  • Go
  • Java / Android
  • JavaScript
  • Julia
  • Swift / Objective-C iOS
  • Python
  • R
覆盖了众多客户端设计语言,而其他语言的支持也在推进中。
Graphql的一些服务整理了下目前比较流行的服务框架:
  • Apollo Engine:一个用于监视 GraphQL 后端的性能和使用的服务。Graphcool (github): 一个 BaaS(后端即服务),它为你的应用程序提供了一个 GraphQL 后端,且具有用于管理数据库和存储数据的强大的 web ui。
  • Tipe (github): 一个 SaaS(软件即服务)内容管理系统,允许你使用强大的编辑工具创建你 的内容,并通过 GraphQL 或 REST API 从任何地方访问它。
  • AWS AppSync:完全托管的 GraphQL 服务,包含实时订阅、离线编程和同步、企业级安全特性以及细粒度的授权控制。
  • Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。
Graphql的一些工具:
  • graphiql (npm): 一个交互式的运行于浏览器中的 GraphQL IDE。
  • Graphql Language Service: 一个用于构建 IDE 的 GraphQL 语言服务(诊断、自动完成等) 的接口。
  • quicktype (github): 在 TypeScript、Swift、golang、C#、C++ 等语言中为 GraphQL 查 询生成类型。
想要获取更多关于Graphql的一些框架、工具,可以去awesome-graphql:一个神奇的社区,维护一系列库、资源等,地址是
https://github.com/chentsulin/awesome-graphql。想要学习更多Graphql的知识,可以去GraphQL.cn。
欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。欢迎加入程序员小乐技术交流群,在后台回复“加群”或者“学习”即可。
【 数据|是什么让我放弃了Restful API?】


推荐阅读