首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PayPal大规模采用GraphQL的探索和实践

有了 GraphQL,我们可以发送更新客户端不再需要担心版本的更新。由于所有更新都发布到了 GraphQL 中的一个端点,因此客户端可以需要时获取更新的资源,而无需重新集成到新版本。...我们支持服务端 SDKs 和客户端 SDKs。挑战在于我们没有所有语言的服务器 SDKs。许多商户出于各种原因不想使用 SDKs。我们决定在服务端上为商户提供更好的 API。...通用库包括用于日志记录的插件、用于数据分类的指令、Apolloplayground 的插件、CLI、异常类和 Apollo graph 变体。 前端和后端的模板示例程序。...当我们介绍 GraphQL 概念时,有时我们被告知 REST 也可以这样做。是的,它可以,我们也可以使用 REST 复制 GraphQL 所做的事情,最后,我们只是重新创建 GraphQL。...当我们向我们的团队介绍 GraphiQL 和 Playground 工具时,他们立刻看到了使用 GraphQL 端点和 playground 工具来浏览文档时发出请求的好处。

3K20
您找到你想要的搜索结果了吗?
是的
没有找到

GraphQL 从入门到实践

graph-pack 是集成了 Webpack + Express + Prisma + Babel + Apollo-server + Websocket 的支持热更新的零配置 GraphQL 服务环境...} } 我们 Playground 中进行 Query # 请求 query { hello } # 返回值 { "data": { "hello": "Hello world!"...接收到数据: ', payload) } } } } 这里的 pubsub 是 apollo-server 里负责订阅和发布的类,它在接受订阅时提供一个异步迭代器...据一位 Twitter 工作的大佬说硅谷不少一线二线的公司都在想办法转到 GraphQL ,但是同时也说了 GraphQL 还需要时间发展,因为将它使用到生产环境需要前后端大量的重构,这无疑需要高层的推动和决心...GraphQL 的利好主要是在于前端的开发效率,落地却需要服务端的全力配合。

2.5K31

怎样使用 apollo-link-state 管理本地数据

GraphQL不在乎请求是要发送给一个 gRPC 服务器,或是 REST 端点,又或是客户端缓存。GraphQL 是一门针对数据的通用语言,与数据的来源毫无关联。...Resolvers 使用 Apollo Client 管理应用状态后,Apollo cache 成为了应用的单一数据源,包括了本地和远端的数据。那么我们应当如何查询和更新缓存中的数据呢?...以上的 Resolver 函数是查询和更新 Apollo cache 的方法。 若要在 Apollo cache 的根写入数据,可以调用 cache.writeData 方法并传入相应的数据。...@client 指令 当应用的 UI 触发了一个 mutation 之后,Apollo 的网络栈需要知道要更新的数据存在于客户端还是服务器端。...1.0 版本前的路线图 尽管 apollo-link-state 的开发已足够稳定,可以投入实际应用的开发了,仍有一些特性我们希望能尽快实现: 客户端数据模式:当前,我们还不支持对客户端数据模式结构的类型校验

2.3K100

构建带 Subscriptions 的 graphql golang 后端

现在有许多用于编写JavaScript的GraphQL客户端和服务器的库和框架,其中最着名的是Apollo和Graphcool 。...它有一个简单的目的: 实现GraphQLWebSocket(由所有流行的GraphQL客户端使用),所以不必考虑与net/http无缝集成 与net/http无缝集成 提供访问已建立订阅的简单方法,执行身份验证并向相应的客户端发送更新...第1步 - 基本设置 使用graphqlwsWebSocket端点设置GraphQL很简单。...它没有实现任何开箱即用的订阅。 一个典型的服务器实现将监听数据库的变化,并通过识别哪些订阅需要更新,重新执行这些订阅的查询并将结果发送给相应的订阅客户端来对这些更改做出反应。...借助graphqlws,现在可以轻松实现服务器端GraphQL订阅。 来吧,你可以尝试一下! 我们希望你喜欢它。 ---- GitHub提交 bug 或 issue 。

2.7K30

GraphQL 实践与服务搭建

可以参阅 BFF——服务于前端的后端 这些接口一般来说都比较重,里面有很多当前页面并不需要的字段,那还有没有一种请求:客户端只需要发送一次请求就能获取所需要的字段 有,也就是接下来要说的 GraphQL...不仅需要在后端中配置 GraphQL 服务,用于接收 GraphQL 查询并验证和执行,此外前端通常需要 GraphQL 客户端,来方便使用 GraphQL 获取数据,目前实用比较多的是Apollo Graph...resolver主要包括query(查询数据)、mutation(增、删、改数据)、subscription(订阅,有点类型 socket), graphql 项目中我们用 resolver 替换了之前的控制器...新增​ 修改​ 删除​ Query 就不在演示。...Nuxt Strapi 提供 useStrapiGraphQL 可以非常方便是客户端调用 GraphQL 服务。

5.2K10

GraphQL最突出的架构优势是什么?

作者 | Khalil Stemmler 策划 | 田晓旭 服务器使用 GraphQL 代替 REST 是有很多好处的,使用 Apollo Client 取代自己编写的数据获取逻辑也有很多优势。...如果有人说团队应该从头开始研发一种持久性存储技术,大家肯定会觉得这样的场面看起来很愚蠢;选择你的 Web 应用程序 API 样式(传输 / 客户端 - 服务器技术)其实也是一样的道理。...5GraphQL 是自文档化的 维护 RESTfulAPI 时需要做的一件麻烦事是保持文档及时更新和内容全面。 RESTfulAPI 有两处可以更改。...使用 GraphQL Playground,可以浏览 GraphQL 端点的所有功能。...由于具备执行自省查询的能力,所以 GraphQL PlaygroundGraphQL 资源管理器可以显示 GraphQL 端点的所有功能 REST 领域中,我只看到了使用 Swagger 构建的

2.1K20

面对极度复杂的前后端业务场景,使用 GraphQL 正确的姿势

我们通过阿里云物联网套件来实现服务器端和树莓派之间的通信,设备可以发布和订阅一些数据到MQTT中 ,每隔一段时间就会有心跳包从设备上传到MQTT,以此来更新页面数据。...当用户发现设备版本和服务器版本存在差异,执行需要更新的时候,本质是发送动态操作到GraphQL API层,然后由GraphQL API层发送消息到设备 ,之后消息通过SDK API到达MQTT,接着发布一系列的请求到设备...现在转换到GraphQL后,请求发起机制、数据刷新、文件上传等等都完全不同,相当于要从头开始学习新的东西。 使用Apollo的过程中我们也遇到了一些坑。...我们技术栈的选择,web用的是React,App用的React Native,后端主要的API源是用Ruby写的,还有部分Python用来做数据分析,目前所有的API都被迁移到了GraphQL。...我们目前端上有树莓派、tv、pad、web、app、微信端、ipad。 以上为全部分享内容,谢谢大家! IT大咖说 | 关于版权 本文由“IT大咖说”原创,转载时请注明作者、出处。

7.3K20

为什么我使用 GraphQL 而放弃 REST API?

当你的团队冲刺期间决定重命名或重新安排对象字段时,你能负担得起上线/api/v1.99端点的成本吗?即使完成了,团队会不会忘记更新规范并通知客户端开发人员更新内容?...你需要同时服务器和客户端上实现每个端点 还有大量的库可以 ORM 或直接数据库自省的帮助下自动生成 REST 端点。即使使用了这样的库,它们通常也不是很灵活或可扩展的。...现在,客户端和服务器团队可以以一种更好的方式 API 设计开展合作,缩短迭代时间,共享自动生成的文档,它们让每次 API 更新对每个人都可见。...显然,如果不需要totalCount,你可以忽略它。查询可以完全控制将要接收的实际信息,但是底层的 GraphQL 基础设施还必须确保所有必需的字段和参数都在那里。...虽然 Netflix falcor 似乎解决类似问题,它比 GraphQL 早几个月发布 GitHub ,也更早地引起我的注意,很明显,似乎 GraphQL 赢了。

2.3K30

GraphQL+Koa2实现服务端API结合Apollo+Vue

GraphQL 提供了强类型的 schema 机制,从而天然确保了参数类型的合法性 二、GraphQl类型系统 2.1 GraphQl类型 可以将GraphQL的类型系统分为标量类型(ScalarTypes...查询语言 GraphQL规范支持两种操作 query:仅获取数据(fetch)的只读请求 mutation:获取数据后还有写操作的请求 新版本的GraphQL还支持subscription,这是为了处理订阅更新这种比较复杂的实时数据更新场景而设计的操作...将它与vue-apollographql一起安装: npm install vue-apollo graphql apollo-boost --save src/main.js中引入apollo-boost...控制台查看查询结果 src/main.js配置vue-apollo插件 import VueApollofrom'vue-apollo' Vue.use(VueApollo); 创建Apollo...provider Provider保存了可以接下来被所有子组件使用的Apollo客户端实例 const apolloProvider = newVueApollo({     defaultClient

5.1K42

写在2021: 值得关注学习的前端框架和工具库

Relay,FaceBook出品,所以也比较受到推崇(我记得看到过原因是这样,GraphQL如果要改啥,才刚进入草案,Relay团队就已经提供了支持),上手没有Apollo-Client那么容易。...GraphQL-Zeus,小而美的GraphQL客户端,集成了Code-Generator能力。...GraphQL-Yoga,Prisma团队出品,基于Apollo-Server,封装了一些特性,因此比Apollo-Server更容易上手,功能却更强,比如原生支持文件上传这种。...GraphQL-Playground,类似上一个,但是更美观一些,支持跟踪请求链路(Tracing)以及 Apollo Federation 插件的集成(Query Plan)。...的useQuery接收的是GraphQL Document,BlitzJS中的则接收的是后端方法,其中会直接db.entity.create()这样去写数据库)。

2.8K10

来试试Graphql

如果只是 1 个,2 个场景还好,如果后期有 n 个场景,需要返回非常多的字段,这不仅会浪费带宽,客户端数据解析也会影响响应时间,从而影响用户体验。那让后台新增一个接口可以吗?...操作类型( Operation type ) 查询( query ) 更新( mutation ) 订阅( subscription ) GraphQL 实战 我一直提倡,刚开始学习一门新的技术,别看太多文档...初始化项目 mkdir graphql-server-example cd graphql-server-example npm init --yes npm install apollo-server...resolver 函数它接收 4 个参数 fieldName(obj, args, context, info) { result } // obj:解析程序父字段返回的结果的对象 // args...更多内容查看 resolver 文档[3] 然后我们 http://127.0.0.1:4000/graphql 或者客户端 GraphiQL 中测试 ?

1.9K20

2023 React 生态系统,以及我的一些吐槽……

它们通常还需要对该数据进行更新、将更新发送到服务器,并使客户端上的缓存数据与服务器的数据保持同步。...Apollo Client Apollo Client 是一个全面的 JavaScript 状态管理库,可让您使用 GraphQL 来管理本地和远程数据。...使用它来获取、缓存和修改应用程序数据,同时自动更新用户界面。 Apollo Client 帮助您以经济、可预测和声明式的方式组织代码,与现代开发实践一致。...核心的 @apollo/client 库提供了与 React 的内置集成,而更大的 Apollo 社区则维护了与其他流行的视图层的集成。 应该是用 GraphQL 时的状态管理最佳选择。...根据我们的先知 Dan Abramov 的说法,表单状态本质是短暂且局部的,因此 Redux(或任何 Flux 库)中跟踪它是不必要的。

54830

GraphQL测试实践

但从请求URL我们无法辨别GraphQL到底干了什么,我需要进一步的观察请求的body REST api 请求POST带的请求的数据。同样GraphQL它也是发送的POST请求,也是带的数据。...所以GraphQL 那里客户端 可以拿自己想拿的数据,REST api 只能请求 server 定义的api。...对于GraphQL 我们需要借助一些第三方库来测试,例如:graphiql与graphql-playground 都能帮我们很好进行基本的验证。 ?...上面无论是graphiql还是graphql-playground 我们都能够利用它发送具体请求,来查看结果是否正确。...如果是服务器渲染的话,我们可以利用上面说过的graphiql与graphql-playground去手动执行需要测试的请求,然后同样chrome dev tools 查看具体的请求。

2K30

redux 应用中使用 GraphQL

开始本教程之前,请确保: 了解基本的 GraphQL 查询——如果 GraphQL 对您来说完全是陌生的,您需要先学习此教程。...快速的启动一个服务端环境 启动一个 redux 脚手架 增加一个 GraphQL 客户端 (Apollo Client) 使用 GraphQL 获取数据 获取更多的数据 接下来要做的 1....如果我们不想在响应中看到作者的姓氏和幸运饼干签语条,可以更新成以下查询: ? 可以看到,这正是我们想要的形式。现在,我们已经确认服务器运行正常,并返回正确的响应,接下来让我们开始构建客户端。 2....客户端正在运行,现在是开始添加 GraphQL 客户端的时候了。我们的目标是使用 GraphQL 查询,从服务器轻松获取数据并将其呈现在着陆页(HomeView)中。 3....增加一个 GraphQL 客户端(Apollo 客户端) 安装 apollo-client, react-apollo, 和 graphql-tag。

1.9K10
领券