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

文章图片
直连数据库的接入
- 集成现有服务的GraphQL层:这种配置适合于旧服务的改造,尤其是在涉及第三方服务时、依然可以通过原有接口进行交互。

文章图片
集成现有服务的GraphQL层
- 直连数据库和集成服务的混合模式:前两种方式的混合。

文章图片
混合接入方式
可以说是非常灵活了!你都不用担心会给你带来任何的麻烦。
服务端实现在服务端, 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 接口查询和操作。
- graphiql (npm): 一个交互式的运行于浏览器中的 GraphQL IDE。
- Graphql Language Service: 一个用于构建 IDE 的 GraphQL 语言服务(诊断、自动完成等) 的接口。
- quicktype (github): 在 TypeScript、Swift、golang、C#、C++ 等语言中为 GraphQL 查 询生成类型。
https://github.com/chentsulin/awesome-graphql。想要学习更多Graphql的知识,可以去GraphQL.cn。欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。欢迎加入程序员小乐技术交流群,在后台回复“加群”或者“学习”即可。
【 数据|是什么让我放弃了Restful API?】
推荐阅读
- 8月|美调查数据显示:5月25日至8月22日美警察只有3天没杀人
- 经验教程|有钱说赢销:微信小商店是什么?功能有哪些?如何申请开通?
- 【行走自贸区】航空“试验田”让我们离飞行梦更近|【行走自贸区】航空“试验田”让我们离飞行梦更近
- 科学|迄今为止地球上速度最快的人造物体是什么,答案是井盖?
- 【行走自贸区】航空“试验田”让我们离飞行梦更近
- 被举报上班吃馒头|被举报上班吃馒头向同事索赔1万怎么回事?具体详情曝光结果是什么
- 华晨|华晨宇前进的路上,是什么陪着他坚持走下去
- 头像|微丧·俏皮·动漫头像:你总能在我最需要的时候陪着我,让我充满安全感
- 科学|既然所有的生命都要走向灭亡,那生命的意义是什么?
- 临床表现|结肠炎有哪些临床表现是什么?
