首页 > 解决方案 > 如何在客户端显示 GraphQL 模式(邮递员等测试工具)

问题描述

我正在使用 Node.js 和 GraphQL 来构建 API 服务器。

我想知道当使用 Postman/GraphQL Playground 等工具向远程 API 端点(当前使用 heroku)发送请求时,如何启用架构将自动显示的功能。

当我在 localhost 上启动服务器和 GraphQL Playground 时,它将在右侧显示架构和文档,如下所示。

在此处输入图像描述

但是当我将端点更改为远程服务器(在本例中为 heroku)时,它不会显示任何架构或文档。架构和文档侧边栏一直在加载,如下图所示(出于隐私问题,我隐藏了 url)

在此处输入图像描述

也没有在邮递员中显示

在此处输入图像描述

我是否需要在我的服务器中配置一些东西或使用一些包,以便它会在客户端自动返回并显示架构?

谢谢你。

标签: node.jsgraphqlpostmanapollo-servergraphql-playground

解决方案


您可以尝试在您的 apollo-server 的构造函数参数introspection: true中设置标志,或者,如果它适合您的需要,将您的应用程序的开发版本部署到 heroku。

解释:
要查看架构和文档,您的客户显然应该首先获取它。这种对 graphQL 模式的请求通常称为“自省”。

拥有后端 graphQL API 的完整模式无疑在开发过程中很方便。
但是,当我们的应用程序在生产环境中运行时,我们通常应该预料到恶意客户端。因此,在生产模式下发送自省可能是不安全的,因为它会给潜在的攻击者提供很多额外的信息。

这就是为什么在当前版本的 appolo-server 的生产环境中默认关闭自省的原因。


推荐阅读