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

Coursera 的 GraphQL 之旅

在生产环境应用 GraphQL 封装 REST API 的过程很简单——我们构建了一些实用程序来执行下游的 REST 请求,从而在解析器获取数据,并制定了一些关于如何将现有模型转换为 GraphQL...首先,我们构建了少量的 GraphQL 解析器,然后在生产环境启动一个 GraphQL 服务器,以调用下游 REST 接口请求我们的资源。...自动化处理 所以我们从头开始,试图找到一个更精确的方案来实现单一数据源——我们将 REST API 视为数据源是有依据的,因为我们的 GraphQL 的 schema 是基于它们构建的。...接下来,我们利用之前解析器的大部分逻辑,简单地定义了 GraphQL 查询和 REST 请求之间的转换,并且能够生成一个功能完善的 GraphQL 服务器,时间不超过五分钟。...关联资源 我们采用 GraphQL 的主要原因之一就是希望能在单次服务器往返获取我们的页面需要的所有数据。

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

使用 GraphQL 和 Ballerina 操作多个数据源

GraphQL 是一种抽象了底层数据源的规范,借助 GraphQL,开发人员能够灵活地使用他们喜欢的编程语言处理数据源,如数据库或 REST API。...GraphQL 是什么 GraphQL 是一种应用层服务器端技术,由 Facebook 于 2012 年开始开发,并于 2015 年公开发布,用于优化 REST API 调用。...GraphQL 是更好的 REST 在过去的十年REST 已经成为一种流行的 API 设计架构。...在下一节,我们将探讨这些特性如何帮助你开发 GraphQL 应用程序。 一个书店示例 GraphQL 服务器数据源可以是任何东西,如数据库、另一个 API 或提供数据的服务等。...在我们的示例,我们实现了一个书店的 GraphQL 应用场景,结合了多个后端数据源,包括 MySQL 数据库和 Google Books API。

2.4K20

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

此外,GraphQL 有能力将对多个数据源的请求集成在单次查询,在此我们将充分利用这个特性。 . 以上是 Apollo Client 的数据流架构图。...GraphQL 并不在乎请求是要发送给一个 gRPC 服务器,或是 REST 端点,又或是客户端缓存。GraphQL 是一门针对数据的通用语言,与数据的来源毫无关联。...GraphQL 最大的一个优势在于,当给 GraphQL 语句中的字段加上合适的 GraphQL 指令后,单条 query 就可以从多个数据源获取数据,无论本地还是远端。让我们来看看具体的方法。...GraphQL 的一个很让人激动的功能是在单个 query 向多个数据源请求数据。...在下面的例子,我们在同一条 query 内查询了 GraphQL 服务器存储的 user 数据以及 Apollo cache 的 visibilityFilter 数据。 .

2.3K100

【API架构】REST API 行业辩论:OData vs GraphQL vs ORDS

对比标准 API 图 1 对比图 1 的标准 API 的标准是基于实现与多个数据源的互操作性。关于这种比较需要注意的一点是规范的成熟度。...这是 GraphQL 的优势之一,我稍后会介绍。 图 2 在图 2 ,我们完成了对要考虑的其他标准的初步分析,并将在以后的文章扩展这些领域。...例子 为了直观地说明使用这些 API 的差异,以下两个代码示例展示了如何在 GraphQL 和 OData 执行“排序依据”。...您执行 POST,准确定义要包含在响应的字段和函数。 因此,尽管 GraphQL 使您能够从元数据确定哪些字段和函数可用,但您仍然不知道它们在语义上的含义。...如果您想了解如何嵌入我们的混合技术以使用 OData 通过 REST 公开数据,请立即与我们的一位数据连接专家交谈。

2.1K30

使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)

为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行。 什么是GraphQL?...客户端定制查询:GraphQL服务器提供了可以让客户端进行定制查询的能力。 内省(introspective):客户端可以查询GraphQL服务器的类型系(schema)。...这个单端点就像API网关一样组织了多个数据源,这样就会更简单。...综上,使用GraphQL的好处是: 避免多重REST请求 向下兼容,无需考虑版本 可以对现有的数据源(例如REST API)进行包装 与开发语言无关 GraphQL查询 我通过Github的GraphQL...如果我还想在查询包含浏览者的姓名,那就加一个字段即可: ? GraphQL的查询也可以有注释: ? GraphiQL的智能提示 GraphiQL是具有智能提示的功能的。

1.7K40

GraphQL 初体验,Node.js 构建 GraphQL API 指南

在传统的基于 REST 的 API 方法,客户端发出请求,而服务端决定响应。 但是在 GraphQL ,客户端可以精确地确定其从服务器获取的数据。...让我们看一下如何在 Node.js 实现解析器。我们的目的是围绕着解析器如何与模式一起操作来巩固概念,所以我们不会围绕着如何设置数据存储来做太详细的介绍。...在“现实世界“,我们可能会用诸如 knex 之类的东西建立数据库连接,现在让我们设置一些虚拟数据。...但这个缺点也是积极的:通过仔细设计你的 Graphql Schema,你可以避免在更容易实现(也更容易破坏)的 REST 端点中明显的陷阱,命名的不一致和混乱的关系。...在解析器执行验证检查是很有诱惑力的,但随着模式的增长,这将成为一种难以维持的策略。 GraphQL 什么时候不合适? GraphQL 不能像 REST 一样精确地满足 HTTP 通信的需求。

8.3K40

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

作者 | Khalil Stemmler 策划 | 田晓旭 在服务器上使用 GraphQL 代替 REST 是有很多好处的,使用 Apollo Client 取代自己编写的数据获取逻辑也有很多优势。...GraphQL API 的配置工作包括: 安装 GraphQL 公开一个服务器端点 设计一个模式(schema) 将解析器连接数据源 这是我们需要做的工作,但不是我们项目的工作重心。...简化的数据获取架构,其中视图可以是任意前端框架——nerdwallet 数据图在连接的两端均有 Apollo 服务器和客户端,它可以简化获取逻辑、错误逻辑、重试逻辑、分页、缓存、optimistic UI...将用例作为应用程序的重心后,从 REST 切换到 GraphQL(或同时支持两者)变得轻而易举。...在架构层面,由于 GraphQL 仅向客户端公开单个端点,因此它满足了这一原则。 客户端隐藏了字段解析机制的所有复杂性,它只需关注如何在 GraphQL 服务器之上构建即可。

2.1K20

最强开源低代码平台 - Appsmith 功能介绍与使用体验

Appsmith 主要用于构建管理面板、内部工具和仪表板等,允许拖放 UI 组件来构建页面,通过连接到任何 API、数据库或 GraphQL 源,并使用 JavaScript 语言编写逻辑,可以在短时间内创建内部应用程序...Unknown-2.gif数据源Appsmith 可以使用 15+ 种 DB、REST API 或 GraphQL 作为数据源,同时支持 OAuth 2.0 等多种鉴权协议。...关于如何在 Docker 上部署自己的 Appsmith 服务器,可以参考 Docker Setup应用发布与分享您可以进行多次编辑和保存,并在编辑器查看结果,应用程序更改后会自动保存,并实时反映在编辑器...Appsmith 凭借低代码 UI 开发器、大量数据源连接器、自定义 JavaScript、开源许可证和蓬勃发展的社区,在低代码开发市场领域占据独特的地位。...Appsmith 使用预构建的 UI 组件创建页面,再连接数据源与 Appsmith 集成,包括 REST API、MySQL、Postgres、MongoDB 和其他数据库,然后创建和执行查询,在

4.7K71

与我一起学习微服务架构设计模式8—外部API模式

实现API Gateway 实现支持多种客户端的REST API的API Gateway非常耗时,你可能需要考虑使用基于图形的API框架,GraphQL。...基于GraphQL(一种标准)的API Gateway可使用Node.js Express Web 框架和Apollo GraphQL服务器,用js编写。...执行GraphQL 使用GraphQL的主要好处是它的查询语言为客户端提供了对返回数据的令人难以置信的控制。客户端通过向服务器发出包含查询文档的请求来执行查询。...把模式连接数据源GraphQL服务器执行查询时,必须从一个或多个数据存储检索所请求的数据。通过将解析函数附加到模式定义的对象类型字段,可以将GraphQL模式与数据源相关联。...为了让客户端调用GraphQL,你需要将它与Web框架集成,Express Web

1.4K30

安息吧 REST API,GraphQL 长存

截图来源于我的 Pluralsight 课程 - 使用 GraphQL 构建可扩展的 API。 我们可以让客户端与 GraphQL 层通信,而不是直接连接两个不同的数据服务(如上面的幻灯片中那样)。...然后 GraphQL 层将与两个不同的数据服务进行通信。GraphQL 首先将客户端从需要与多种语言进行通信中隔离,并将单个请求转换为使用不同语言的多个服务的多个请求。...因此,当客户端需要获取多个资源的数据时,需要对 REST API 进行多次往返,以将其所需的数据放在一起。 在 REST API ,没有客户端请求语言。客户端无法控制服务器返回的数据。...这些类型可以是原语的或者自定义的,并且模式的所有其他类型都需要类型。这种丰富的类型系统带来丰富的功能,拥有内省 API,并能够为客户端和服务器构建强大的工具。...如果我们有一个 GraphQL 查询,我们明确知道如何在 UI 中使用它的响应,因为查询与响应具有相同的“结构”。我们不需要检查响应才知道如何使用它,我们也不需要有关 API 的任何文档。

2.7K30

30分钟理解GraphQL核心概念

写在前面 在上一篇文章RPC vs REST vs GraphQL,对于这三者的优缺点进行了比较宏观的对比,而且我们也会发现,一般比较简单的项目其实并不需要GraphQL,但是我们仍然需要对新的技术有一定的了解和掌握...我们在使用REST接口时,接口返回的数据格式、数据类型都是后端预先定义好的,如果返回的数据格式并不是调用者所期望的,作为前端的我们可以通过以下两种方式来解决问题: 和后端沟通,改接口(更改数据源) 自己做一些适配工作...值得注意的是,GraphQL可以通过Scalar声明一个新的标量,比如: prisma(一个使用GraphQL来抽象数据库操作的库),还有DateTime和ID这两个标量分别代表日期格式和主键 在使用...例子我们仅仅声明了Query类型和Mutation类型,如果我们的应用对于评论列表有real-time的需求的话,在REST,我们可能会直接通过长连接或者通过提供一些带验证的获取长连接url的接口...当然,在实际运行,其内部实现仍然是建立于长连接之上的,但是我们能够以更加声明式的方式来进行声明它。

2K40

用ServBay快速构建下一代GraphQL应用

GraphQL是由Facebook开发的一种数据查询和操作语言,用于API,并作为运行时用于执行这些查询的服务器端软件的一种方式。它提供了一种更高效、强大和灵活的替代REST的方法。...主要功能包括声明式数据获取:使用 GraphQL,客户端可以在查询精确指定所需的数据,包括字段和关系。这消除了传统 REST API 经常出现的数据过度获取和获取不足的问题。...高效的类型系统: GraphQL 拥有强大的类型系统,可以在 API 定义数据的结构和关系。高效的数据加载功能: GraphQL 使客户端能够在单个请求检索多个资源。...Node.js安装部署指南第2步:初始化Apollo服务器Apollo Server是一个开源的、与GraphQL规范兼容的服务器,它简化了GraphQL API的构建。...具体来说,API 服务依赖于数据库服务——这确保服务器在开始允许 API 无缝连接到 PostgreSQL 数据库之前等待数据库完全初始化。

13700

30分钟理解GraphQL核心概念

写在前面 在上一篇文章RPC vs REST vs GraphQL,对于这三者的优缺点进行了比较宏观的对比,而且我们也会发现,一般比较简单的项目其实并不需要GraphQL,但是我们仍然需要对新的技术有一定的了解和掌握...我们在使用REST接口时,接口返回的数据格式、数据类型都是后端预先定义好的,如果返回的数据格式并不是调用者所期望的,作为前端的我们可以通过以下两种方式来解决问题: 和后端沟通,改接口(更改数据源) 自己做一些适配工作...值得注意的是,GraphQL可以通过Scalar声明一个新的标量,比如: prisma(一个使用GraphQL来抽象数据库操作的库),还有DateTime和ID这两个标量分别代表日期格式和主键 在使用...例子我们仅仅声明了Query类型和Mutation类型,如果我们的应用对于评论列表有real-time的需求的话,在REST,我们可能会直接通过长连接或者通过提供一些带验证的获取长连接url的接口...当然,在实际运行,其内部实现仍然是建立于长连接之上的,但是我们能够以更加声明式的方式来进行声明它。

97420

1.1 REST

REST API有一些规则和约束,这里我就简单的写一下(之前的文章有详细描述): 资源都是URL的一部分,例如/persons 针对每个资源通常都会有两个URL被实现:“/persons”表示资源的集合...GraphQL允许客户端定义需要得到的数据结构,服务器精确的返回所需的数据结构,例如: 与REST和RPC不同,GraphQL API只需要一个端点;它也不需要使用不同的HTTP动词,它只使用POST...对于安全的调用REST API,现在的方案都比较成熟;而对于WebHook来说,这方面依然在探索前进。 防火墙。防火墙后运行的应用可以通过HTTP访问API,但是它们可能无法接收入站的流量。...如果连接挂掉了,客户端会尝试重新初始化连接。但是WebSocket有一些扩展性的问题,因为如果在线的客户端太多,那么服务器端就需要维持这些客户端打开的连接。...为了让数据通过一个可长时间存在的连接上进行传输,有两个方案: 首先可以让服务器把Transfer-Encoding这个Header设为chunked。

1.3K21

常见形式 Web API 的简单分类总结

REST API有一些规则和约束,这里我就简单的写一下(之前的文章有详细描述): 资源都是URL的一部分,例如/persons 针对每个资源通常都会有两个URL被实现:“/persons”表示资源的集合...对于安全的调用REST API,现在的方案都比较成熟;而对于WebHook来说,这方面依然在探索前进。 防火墙。防火墙后运行的应用可以通过HTTP访问API,但是它们可能无法接收入站的流量。...如果连接挂掉了,客户端会尝试重新初始化连接。但是WebSocket有一些扩展性的问题,因为如果在线的客户端太多,那么服务器端就需要维持这些客户端打开的连接。 ?...而使用HTTP Streaming,服务器端可以在一个由客户端打开的长生存的连接里持续的推送新数据。 ?...为了让数据通过一个可长时间存在的连接上进行传输,有两个方案: 首先可以让服务器把Transfer-Encoding这个Header设为chunked。

3K50

API协议设计的10种技术

在RESTful API,每个资源都可以通过唯一的URL进行标识和访问。客户端可以通过发送HTTP请求来执行各种操作,获取资源、创建新资源、更新现有资源或删除资源。...RESTful API的设计遵循一些基本原则,资源的表达、客户端-服务器架构、无状态性和缓存等。...一旦连接建立,服务器就可以通过该连接将数据推送到客户端,而无需客户端再次发起请求。例如,客户端首先发送一个HTTP GET请求到服务器,以建立持久的连接。...在 WebSocket ,客户端和服务器之间的通信基于事件。一旦连接建立,任何一方都可以异步地发送消息给对方,而对方也能够立即接收并响应。...客户端可以选择创建持久性会话,使得在客户端断开连接后,服务器能够保留其订阅信息。这有助于确保客户端在重新连接时能够接收到之前错过的消息。

29110

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

GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器获取数据,这些数据存储可能存储在数据库,API的职责是提供与应用程序需求相匹配的存储数据的接口。...总结它的好处: 在它的设计思想GraphQL 以图的形式将整个 Web 服务的资源展示出来,客户端可以按照其需求自行调用,类似添加字段的需求其实就不再需要后端多次修改了。...GraphQL应用的基本架构 下图是一个 GraphQL 应用的基本架构,其中客户端只和 GraphQL 层进行 API 交互,而 GraphQL 层再往后接入各种数据源。...这样一来,只要是数据源有的数据, GraphQL 层都可以让客户端按需获取,不必专门再去定接口了。...服务端实现 在服务端, GraphQL 服务器可用任何可构建 Web 服务器的语言实现。

2.4K40
领券