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

英国卫报基于 Serverless、React 和 GraphQL 构建内容协作工具 Pinboard

客户端应用程序是用 Preact 和 Emotion 创建的,并使用 Webpack 进行打包。它使用 Apollo 作为 GraphQL 客户端库。...AWS AppSync,AWS 的托管 GraphQL 服务,用于抽象化各种数据源,包括 Postgres 数据库和其他系统。...Pinboard 的架构(来源:卫报工程博客) Pinboard 的架构在很大程度上依赖于无服务器组件,Lambda 函数充当了各种不同的角色,包括为嵌入到编辑工具中的客户端应用提供服务、提供 AppSync...GraphQL 提供的第三种操作类型是 GraphQL 订阅,客户端维护与 GraphQL 服务器的长时间连接(通常通过 WebSocket),接收关于后端数据变化的实时通知。...AppSync 支持所有这三种 GraphQL 操作类型,并提供了定义订阅服务器端过滤器和订阅失效的能力。它还支持 Pub/Sub API,支持通过 WebSocket 进行 异步消息传递。

8910

从客户端的角度设计后端的接口

虽然很多时候一个api接口的业务,数据逻辑是后端提供的,但真正使用这个接口的是客户端,一个前端功能的实现流程与逻辑,有时候只有客户端的RD才清楚,从某种意义来说,客户端算是接口的需求方。...订单付款日期,格式"yyyy-MM-dd" 状态 status 订单状态,1:进行中(payDate不返回),2:待支付(payDate返回),3:已支付(payDate不返回);(bool以1/0表示,状态从1...)需要发版的时候,虽然70%的锅是客户端背,但是,剩余30%也会对当初重客户端的选择而后悔,不过重点不是谁背锅,而是产品不出问题。...数据列表化:尽量用List(key, value)的数据格式定义类似列表的界面 list.png 方案1:客户端在写xml的时候将左侧的"姓名","性别","年龄"写死,右侧的具体数据从json解析获得...例:订单列表页面,每个item已经具有类似orderId,orderDesc等字段,那么点击进入订单详情的时候,orderId,orderDesc就可以从订单列表传递过来即可,详情页的请求只需要返回订单相关的剩余数据

2.3K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GraphQL在现代Web应用中的应用与优势

    查询语言:查询、突变、订阅在GraphQL中,查询和突变是通过JSON-like结构表示的字符串。...CreateUser突变创建了一个新用户并返回新用户的ID和姓名。OnNewUser订阅等待新用户被创建时触发,返回新用户的信息。2....: User}type Subscription { newUser: User}这里定义了一个User对象类型,一个Mutation类型用于突变操作,和一个Subscription类型用于订阅操作。...查询根和突变根接下来,定义GraphQL的查询根(Query)和突变根(Mutation)类型,它们是客户端请求数据和修改数据的入口点。type Query { user(id: ID!)...客户端控制:客户端可以决定获取多少数据,何时获取,提高了用户体验。缓存优化:客户端可以根据返回的数据结构更容易地进行缓存策略的实施。

    10710

    【EventBus】EventBus 源码解析 ( 注册订阅者总结 | 从封装的数据结构角度分析 EventBus )

    文章目录 EventBus 中的重要数据类型 1、subscriptionsByEventType 集合 2、typesBySubscriber 集合 EventBus 中的重要数据类型 ---- 从几个关键的数据存储结构角度分析...); 然后从 Map的消息类型 , 查找对应的 订阅者实例对象 和 订阅方法 , 可以直接调用对应的订阅方法 ; 2、typesBySubscriber 集合 Map>> typesBySubscriber; 是 EventBus 的成员变量 ; Key : 订阅者对象 ; Value : 订阅方法参数类型集合 ; 可以根据订阅者对象查询 该订阅者对象 中的 订阅方法...集合的作用很明显 , 在取消注册时 , 可以快速查询到 该订阅者对象 注册了哪些方法 , 将其从 Map<Class<?

    27820

    GraphQL详解

    Endpoints对比 REST API's Endpoints GraphQL 实际上将多个 HTTP 请求聚合成了一个请求,将多个 restful 请求的资源变成了一个从根资源 POST 访问其他资源的...Comment 和 Author 的图,多个请求变成了一个请求的不同字段,从原有的分散式请求变成了集中式的请求,因此GraphQL又可以被看成是图数据库的形式。...变更(Mutation):支持对数据的增删改等操作。 订阅(Subscription):用于监听数据变动、并靠websocket等协议推送变动的消息给对方。...Tipe (github): 一个 SaaS(软件即服务)内容管理系统,允许你使用强大的编辑工具创建你 的内容,并通过 GraphQL 或 REST API 从任何地方访问它。...AWS AppSync:完全托管的 GraphQL 服务,包含实时订阅、离线编程和同步、企业级安全特性以及细粒度的授权控制。

    2.6K00

    GraphQL

    Endpoints对比 REST API's Endpoints GraphQL 实际上将多个 HTTP 请求聚合成了一个请求,将多个 restful 请求的资源变成了一个从根资源 POST 访问其他资源的...Comment 和 Author 的图,多个请求变成了一个请求的不同字段,从原有的分散式请求变成了集中式的请求,因此GraphQL又可以被看成是图数据库的形式。...变更(Mutation):支持对数据的增删改等操作。 订阅(Subscription):用于监听数据变动、并靠websocket等协议推送变动的消息给对方。...Tipe (github): 一个 SaaS(软件即服务)内容管理系统,允许你使用强大的编辑工具创建你 的内容,并通过 GraphQL 或 REST API 从任何地方访问它。...AWS AppSync:完全托管的 GraphQL 服务,包含实时订阅、离线编程和同步、企业级安全特性以及细粒度的授权控制。

    2.6K65

    为什么我劝你放弃了Restful API?

    GraphQL 实际上将多个 HTTP 请求聚合成了一个请求,将多个 restful 请求的资源变成了一个从根资源 POST 访问其他资源的 Comment 和 Author 的图,多个请求变成了一个请求的不同字段...,从原有的分散式请求变成了集中式的请求,因此GraphQL又可以被看成是图数据库的形式。...订阅(Subscription):用于监听数据变动、并靠websocket等协议推送变动的消息给对方。...Tipe (github): 一个 SaaS(软件即服务)内容管理系统,允许你使用强大的编辑工具创建你 的内容,并通过 GraphQL 或 REST API 从任何地方访问它。...AWS AppSync:完全托管的 GraphQL 服务,包含实时订阅、离线编程和同步、企业级安全特性以及细粒度的授权控制。

    3.1K20

    以C#一分钟浅谈:GraphQL 中的订阅与发布

    与传统的 RESTful API 不同,GraphQL 允许客户端精确地请求所需的数据,从而减少不必要的数据传输。...除了查询和变更操作外,GraphQL 还支持订阅功能,这使得客户端能够实时接收服务器端的数据更新。...本文将从 C# 角度出发,详细介绍 GraphQL 中的订阅与发布机制,并探讨常见的问题、易错点及如何避免。什么是 GraphQL 订阅?...GraphQL 订阅是一种允许客户端订阅特定事件并在这些事件发生时接收实时更新的功能。订阅通常用于需要实时数据的应用场景,如聊天应用、实时通知等。...可以使用缓存机制,将频繁访问的数据缓存起来,减少数据库查询次数。4. 安全性问题:未经授权的客户端可能会订阅敏感数据。解决方案:在订阅解析器中添加权限验证逻辑,确保只有授权的客户端才能订阅特定的数据。

    8110

    我为什么要放弃RESTful,选择拥抱GraphQL

    Endpoints对比 REST API's Endpoints GraphQL 实际上将多个 HTTP 请求聚合成了一个请求,将多个 restful 请求的资源变成了一个从根资源 POST 访问其他资源的...Comment 和 Author 的图,多个请求变成了一个请求的不同字段,从原有的分散式请求变成了集中式的请求,因此GraphQL又可以被看成是图数据库的形式。...变更(Mutation):支持对数据的增删改等操作。 订阅(Subscription):用于监听数据变动、并靠websocket等协议推送变动的消息给对方。...Tipe (github): 一个 SaaS(软件即服务)内容管理系统,允许你使用强大的编辑工具创建你 的内容,并通过 GraphQL 或 REST API 从任何地方访问它。...AWS AppSync:完全托管的 GraphQL 服务,包含实时订阅、离线编程和同步、企业级安全特性以及细粒度的授权控制。

    2.4K40

    从客户端的角度来谈谈移动端IM的消息可靠性和送达机制

    这篇文章和大家聊下从移动端客户端的角度所关注的IM消息可靠性和送达机制(因为我个人对移动客户端的经验积累的比较丰富嘛)。...如何确保 IM 不丢消息是个相对复杂的话题,从客户端发送数据到服务器,再从服务器抵达目标客户端,最终在 UI 成功展示,其间涉及的环节很多,这里只取其中一环「接收端如何确保消息不丢失」来探讨,粗略聊下我接触过的两种设计思路...这么做的好处是,每次从网络层收到消息时,从 db 里取出 LastReceivedSeqID,如果 LastReceivedSeqID = 新消息 Seq ID - 1,那么说明应用层消息时连续的没有发生丢失...、通信协议和客户端》 《一套海量在线用户的移动端IM架构设计实践分享(含详细图文)》 《一套原创分布式即时通讯(IM)系统理论架构方案》 《从零到卓越:京东客服即时通讯系统的技术架构演进历程》...》 《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》 >> 更多同类文章 …… [8] IM开发综合文章: 《从客户端的角度来谈谈移动端IM的消息可靠性和送达机制》 《现代移动端网络短连接的优化手段总结

    2.5K20

    C# 一分钟浅谈:GraphQL 中的订阅与发布

    引言随着 Web 技术的发展,GraphQL 已经成为一种流行的 API 查询语言,它允许客户端精确地请求所需的数据,从而提高数据加载效率。...除了查询和变更操作外,GraphQL 还支持订阅功能,使得客户端能够实时接收服务器端的数据更新。...本文将从 C# 的角度出发,浅谈 GraphQL 中的订阅与发布机制,包括常见问题、易错点及如何避免,并通过代码案例进行详细解释。什么是 GraphQL 订阅?...GraphQL 订阅是一种让客户端订阅特定事件并在事件发生时接收更新的能力。与传统的轮询或长轮询相比,订阅机制更加高效,因为它可以在事件发生时立即通知客户端,而不需要客户端频繁地向服务器发送请求。...C# 实现 GraphQL 订阅在 C# 中实现 GraphQL 订阅通常需要使用一些库,如 HotChocolate。以下是一个简单的示例,展示如何在 C# 中实现 GraphQL 订阅。

    12710

    C# 一分钟浅谈:GraphQL 中的订阅与发布

    引言 随着 Web 技术的发展,GraphQL 已经成为一种流行的 API 查询语言,它允许客户端精确地请求所需的数据,从而提高数据加载效率。...除了查询和变更操作外,GraphQL 还支持订阅功能,使得客户端能够实时接收服务器端的数据更新。...本文将从 C# 的角度出发,浅谈 GraphQL 中的订阅与发布机制,包括常见问题、易错点及如何避免,并通过代码案例进行详细解释。 什么是 GraphQL 订阅?...GraphQL 订阅是一种让客户端订阅特定事件并在事件发生时接收更新的能力。与传统的轮询或长轮询相比,订阅机制更加高效,因为它可以在事件发生时立即通知客户端,而不需要客户端频繁地向服务器发送请求。...C# 实现 GraphQL 订阅 在 C# 中实现 GraphQL 订阅通常需要使用一些库,如 HotChocolate。以下是一个简单的示例,展示如何在 C# 中实现 GraphQL 订阅。

    8010

    C# 一分钟浅谈:GraphQL 客户端调用

    引言 随着互联网应用的发展,API 的设计模式也在不断进化。从传统的 RESTful API 到现代的 GraphQL API,后者以其灵活性和高效性逐渐受到开发者的青睐。...GraphQL 是一种用于 API 的查询语言,它允许客户端精确地请求所需的数据,而无需返回额外的字段。...C# 调用 GraphQL API 基本步骤 安装必要的 NuGet 包: 首先,我们需要安装一个 GraphQL 客户端库。常用的库有 GraphQL.Client 和 HotChocolate。...dotnet add package GraphQL.Client.Http 创建 GraphQL 客户端: 使用 GraphQL.Client 库创建一个客户端实例,连接到 GraphQL 服务器。...更新订单的状态 定义一个 UpdateOrderInput 类来表示更新订单的输入参数,并编写一个突变来更新订单的状态。

    10310

    C# 一分钟浅谈:GraphQL 客户端调用

    引言随着互联网应用的发展,API 的设计模式也在不断进化。从传统的 RESTful API 到现代的 GraphQL API,后者以其灵活性和高效性逐渐受到开发者的青睐。...GraphQL 是一种用于 API 的查询语言,它允许客户端精确地请求所需的数据,而无需返回额外的字段。...C# 调用 GraphQL API基本步骤安装必要的 NuGet 包: 首先,我们需要安装一个 GraphQL 客户端库。常用的库有 GraphQL.Client 和 HotChocolate。...dotnet add package GraphQL.Client.Http创建 GraphQL 客户端: 使用 GraphQL.Client 库创建一个客户端实例,连接到 GraphQL 服务器。...更新订单的状态定义一个 UpdateOrderInput 类来表示更新订单的输入参数,并编写一个突变来更新订单的状态。

    9610

    何为GraphQL?

    } 还有预先定义好的进入点。 这些是Query(查询),Mutation(变动)和Subscription(订阅)。 前端通过入口点与后端进行通信,并根据需要进行定制。...这是一个基于node-express的全功能GraphQL服务器。 它有一个在内存里硬编码的数据库。 通常,数据将存储在数据库中或从其它服务中获取。...让我们来看看更有趣的事情:从偏移(offset)4开始,查询2名球员。 对于每个球员,请返回他们的名字,他们获得的冠军数量,球队名称以及球队赢得的冠军数量。...您可以在查询中修改数据,并且您可以仅返回来自变动(mutation)的数据。 GraphQL不会窥探你的代码。 查询和突变都可以接受参数并返回数据。 它更像是语法糖,让你的模式更具人性化。 ?...订阅 订阅是GraphQL的另一个杀手级的功能。 通过订阅,客户端可以订阅无论何时服务器状态发生变化都会触发的事件。 订阅是在后期被引入的,并以不同的方式通过不同的框架被实施的。 ?

    3.5K60

    gRPC从源码角度分析客户端和服务端一次交互的全流程

    这篇文章一起从源码揭秘gRPC的一次请求生命周期,从其中我们探寻RPC框架设计时一些必要的模块,进行抽象总结。 文章较长,希望大家有耐心。...客户端发送一次请求的过程分析 在看客户端如何发起一次请求时,我们先看看pb文件,和生成的pb.go文件,事实上常规的rpc请求和流式的rpc请求是不一样的,这里我们主要分析常规的rpc请求(也就是一次请求...,一次响应) 通过protobuffer工具生成pb.go文件,这个文件中包含的信息比较多,这里我们先主要看对HelloService服务的描述信息 我们从HelloWorld的RPC请求看起,看看这个一次请求...深入阅读进去,你会发现源码并不是特别难懂,关键在于踏出第一步,上面分析了grpc从客户端发起请求到服务端接受处理的全流程,中间也有很多细节并没有说,比如鉴权,比如创建http2服务,拦截器执行,trace...跟踪等,尤其是错误处理,但本篇文章重点是带领大家贯穿整个流程,把从客户端发起请求到服务端处理衔接起来,并不是把所有细节说明白,一篇文章也说不明白,最后我用一张图表述整个流程,让大家更加清晰的理解。

    2.3K20

    C# 一分钟浅谈:GraphQL 数据类型与查询

    本文将从C#的角度出发,简要介绍GraphQL的基本概念、数据类型以及查询方法,并通过具体的代码示例来帮助读者更好地理解和使用GraphQL。 GraphQL 基本概念 什么是GraphQL?...GraphQL是由Facebook开发的一种用于API的数据查询和操作语言。它允许客户端精确地请求所需的数据,从而减少不必要的数据传输,提高性能。...GraphQL的核心优势在于其强类型系统和灵活的查询能力。 为什么选择GraphQL? 精确的数据请求:客户端可以指定需要的数据字段,避免了过度获取或不足的问题。...例如,定义一个可以是用户或文章的联合类型: union SearchResult = User | Article GraphQL 查询 基本查询 GraphQL查询允许客户端请求特定的数据字段。...如何避免易错点 严格类型检查:在定义Schema时,尽量使用严格的类型定义,避免使用any类型。 单元测试:编写单元测试,确保查询和突变的正确性。可以使用Hot Chocolate提供的测试工具。

    8500

    C# 一分钟浅谈:GraphQL 数据类型与查询

    本文将从C#的角度出发,简要介绍GraphQL的基本概念、数据类型以及查询方法,并通过具体的代码示例来帮助读者更好地理解和使用GraphQL。GraphQL 基本概念什么是GraphQL?...GraphQL是由Facebook开发的一种用于API的数据查询和操作语言。它允许客户端精确地请求所需的数据,从而减少不必要的数据传输,提高性能。...GraphQL的核心优势在于其强类型系统和灵活的查询能力。为什么选择GraphQL?精确的数据请求:客户端可以指定需要的数据字段,避免了过度获取或不足的问题。...例如,定义一个可以是用户或文章的联合类型:union SearchResult = User | ArticleGraphQL 查询基本查询GraphQL查询允许客户端请求特定的数据字段。...单元测试:编写单元测试,确保查询和突变的正确性。可以使用Hot Chocolate提供的测试工具。日志记录:记录详细的日志信息,便于调试和排查问题。

    11210
    领券