本文展示了跨多个动物群实例缝制的架构,从而从不同的数据源创建了统一的GraphQl API。我们还将探索将动物区系与其他GraphQL服务相结合。
了解模式缝线
架构缝线是一种从多个基础GraphQl API构建单个GraphQl API的技术。
为什么要使用模式缝线?
大规模应用通常采用微服务用于模块化。但是,客户端应用程序经常需要来自多个来源的数据。统一的GraphQl API提供了一个干净的接口,但是构建单片服务器可能会出现问题。 Fauna的每个数据库的本机GraphQl是理想的,但是多个数据库需要连接到多个实例,从而创建紧密的耦合。模式缝合通过将多个GraphQl服务组合到单个统一的模式中来解决此问题。本文涵盖:
- 将多个FAUNA实例集成到单个GraphQl服务中。
- 将动物群与其他GraphQL API和数据源相结合。
- 使用AWS lambda创建无服务器GraphQL网关。
合并多个动物群实例
让我们将多个FAUNA数据库实例(例如, Product
, Inventory
, Review
)组合到单个GraphQL服务中。每个数据库都有自己的GraphQl API(子图)。我们的目标是用于客户端应用程序的统一图,以查询所有来源的数据。
该统一的图将是我们的网关服务。我们将使用node.js构建它。
-
项目设置:创建一个node.js项目:
mkdir my-gateway CD My-Gateway NPM Init-是的
-
安装依赖项:
npm i express-express-graphql graphql @graphql-tools/schema @graphql-tools/stitch @graphql-tools/wrap cross-fetch-save -save-save-save-save
-
基本GraphQl Server(gateway.js):从简单的Express GraphQl Server开始:
// Gateway.js(初始版本) // ...(Express Server设置)...
(此初始代码将是类似于原始示例的裸孔服务器,但省略了简洁的专注于缝合方面。)
FAUNA数据库设置:创建三个FAUNA数据库(
Product
,Inventory
,Review
)并生成管理密钥。为每个数据库定义GraphQL模式(如原始示例所示)。-
Gateway Service Enhancement(Gateway.js):使用
@graphql-tools/stitch
实现模式缝制。本节将包括原始描述的makeRemoteExecutor
和makeGatewaySchema
功能,但具有改善的清晰度,并有可能重构以更好地可读性。主要改进将是:- 清晰的评论解释了每个功能的目的。
- API呼叫的错误处理。
- 通过环境变量而不是硬编码的API键配置。
缝制第三方API:将网关扩展到使用相同的
makeRemoteExecutor
和stitchSchemas
方法包括第三方GraphQl API(例如SpaceX API)。部署到AWS lambda:使用无服务器框架将网关部署到AWS lambda功能。安装必要的依赖项(
serverless
,serverless-http
,body-parser
)。创建一个serverless.yaml
文件(如原始文件所示)。修改gateway.js
,与serverless-http
集成以进行适当的lambda功能处理。使用serverless deploy
部署。
结论
模式缝合为从多个数据源构建可扩展和可维护的GraphQL API提供了强大的解决方案。尽管本文使用Fauna和AWS Lambda,但这些原则广泛应用于其他GraphQL服务和无服务器平台。阿波罗联合会(Apollo Federation)等替代方法提供了类似的功能。
以上是跨多个数据源实现单个GraphQl的详细内容。更多信息请关注PHP中文网其他相关文章!

我最近找到了一种动态更新任何产品图像的颜色的解决方案。因此,只有一种产品之一,我们可以以不同的方式对其进行着色以显示

在本周的综述中,灯塔在第三方脚本上阐明了灯光,不安全的资源将在安全站点上被阻止,许多国家连接速度

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

当您看到一些称为super()的JavaScript时,在子类中,您会使用super()调用其父母的构造函数和超级。访问它的


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

记事本++7.3.1
好用且免费的代码编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。