中继编译器可以从端点http 或 https读取模式吗?

问题描述

Relay 的提前编译会生成新的编译工件。为了能够做到这一点,有必要将 GraphQL 架构路径传递到其配置文件。我的问题是:该路径可以是 URL 吗?如果没有,有什么替代方法文档对此非常模糊。

为什么我需要它是一个 URL? 我的后端在另一个服务中,所以我必须找到一种方法来访问它的架构。我正在使用 graphql get-schema 命令 ─ 它制作远程模式的本地副本。但 get-schema 命令在 graphql-cli@4 中已弃用。

get-schema 不再可用 在以前的版本中,您可以从 > 端点内给定的 URL 将架构下载到 schemaPath 中的给定路径。在新版本中,schema是指schema的端点。

如果您使用 prisma 或任何其他在 URL 端点下提供架构的工具,您必须>在配置 YAML 中使用以下语法指定它:

来源: https://github.com/Urigo/graphql-cli/blob/a8fc4bc6376205b2c6ee077cc0acfcef0712b470/docs/MIGRATION.md#get-schema-is-no-longer-available

从那时起,我就找不到将远程架构与我的前端项目同步的简单方法。也许唯一的选择是降级到 graphql-cli@3

解决方法

relay-config 不同,graphql-config 似乎不接受 URL 架构。必须是本地路径。

因此,您必须继续使用本地架构。 graphql-cli@4 迁移指南解释了如何下载架构,因为此功能不再是包的核心:

如果您想从这个 URL 下载架构到您的本地文件系统,您还需要使用以下命令或其 npm 等效命令安装 codegen 插件及其 schema-ast 插件:>

yarn add @graphql-cli/codegen @graphql-codegen/schema-ast --dev

之后可以指定本地schema文件的输出路径:

schema: http://localhost:4000/graphql
extensions:
  codegen:
    generates:
      ./schema.graphql:
        plugins:
          - schema-ast

通过运行 graphql codegen,schema.graphql 文件会在您项目的根路径中生成。

来源: https://github.com/Urigo/graphql-cli/blob/a8fc4bc6376205b2c6ee077cc0acfcef0712b470/docs/MIGRATION.md#get-schema-is-no-longer-available