ITADN
ardatan/graphql-mesh
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Mesh GIF

Created by The guild

 

GraphQL Mesh

适用于任何 API 的 GraphQL Federation 框架
前往文档

npm version CI Discord Chat code style: prettier

GraphQL Mesh 是一个用于 GraphQL Federation 和非 GraphQL Federation 子图、非 GraphQL 服务(如 REST 和 gRPC)以及数据库(如 MongoDB、MySQL 和 PostgreSQL)的 GraphQL Federation 框架和网关。

GraphQL Mesh 允许你使用 GraphQL 查询语言访问未运行 GraphQL 的远程 API 中的数据(也适用于运行 GraphQL 的 API)。它可以用作其他服务的网关,或作为本地 GraphQL schema 运行,以聚合来自远程 API 的数据。

GraphQL Mesh 的目标是让开发人员能够轻松地通过 GraphQL 查询和变更访问使用其他 API 规范(如 gRPC、OpenAPI/Swagger、OData、SOAP/WSDL、Apache Thrift、Mongoose、PostgreSQL、Neo4j 以及 GraphQL)编写的服务。

GraphQL Mesh 赋予开发人员修改输出 schema、跨 schema 链接类型以及合并 schema 类型的能力。你甚至可以添加符合你需求的自定义 GraphQL 类型和解析器。

它允许开发人员控制数据获取方式,并克服与后端实现、遗留 API 服务、所选 schema 规范以及非类型化 API 相关的问题。

GraphQL Mesh 充当你数据的代理,并使用通用库来封装你现有的 API 服务。你可以通过在本地运行 GraphQL schema(使用 GraphQL execute)在本地服务或应用程序中使用此代理,或者将其部署为内部服务的网关层。

它是如何工作的?

GraphQL Mesh 的工作方式是:

  1. 从服务中收集 API 模式规范
  2. 为服务创建完全类型化的 SDK 运行时实例。
  3. 将 API 规范转换为 GraphQL 模式
  4. 应用自定义模式转换和模式扩展
  5. 创建 Federation 子图或兼容 Federation 的超级图

快速入门

支持的源 API

模式转换

贡献

非常欢迎贡献、问题反馈和功能请求。如果您正在使用此包并为自己修复了一个 bug,请考虑提交一个 PR!

如果这是您第一次为该项目做贡献,请在开始之前务必阅读我们的 贡献者工作流程指南

行为准则

帮助我们保持 GraphQL Mesh 的开放和包容。请阅读并遵守我们 行为准则,该准则 源自 贡献者公约

许可证

GitHub license

MIT