加入我们,于10月8日至10日在纽约市学习最新关于GraphQL联邦和API平台工程的技巧、趋势和新闻。加入2024年在纽约市的GraphQL峰会
文档
免费开始

构建和运行针对Apollo Server的查询


在生产环境之外, 4的着陆页是Apollo Sandbox 的嵌入式版本(默认情况下由https://127.0.0.1:4000 提供):

Apollo Sandbox

Apollo Server 在生产中提供不同的着陆页

Apollo沙箱是一种用于本地开发的Apollo Studio特殊模式,它不需要Apollo账号。沙箱包含、一个强大的网络IDE,允许您在您的服务器(或任何可访问的服务器)上构建和运行

生产环境与非生产环境

在生产环境中(当NODE_ENVproduction时),Apollo Server会显示不同的着陆页面:

Apollo Server production landing page

这主要是因为Apollo Server默认在生产环境中禁用了,这意味着像这样的工具无法工作。

因此,如果您选择更改Apollo Server的着陆页面,我们建议为生产环境和非生产环境使用不同的设置(甚至可能是在生产环境中禁用着陆页面)。

更改着陆页面

您可以通过安装几个不同版本的Apollo Server插件来改变从Apollo Server的基础URL提供的着陆页面。您可以选择配置默认着陆页面、提供GraphQL Playground(一个传统的开源 IDE),创建一个完全的自定义着陆页面,或者您可以选择完全禁用着陆页面

您通过安装以下Apollo Server插件之一来完成此操作:插件

配置默认着陆页面

Apollo Server会根据环境使用以下插件之一来显示默认着陆页面:

  • ApolloServerPluginLandingPageLocalDefault(非生产环境)
  • ApolloServerPluginLandingPageProductionDefault(生产环境)

您可以手动安装任一插件来配置其行为。

例如,以下设置将我们的本地着陆页面配置为提供包含指向Apollo沙箱链接的启动页面:

index.ts
import { ApolloServer } from '@apollo/server';
import {
ApolloServerPluginLandingPageLocalDefault,
ApolloServerPluginLandingPageProductionDefault,
} from '@apollo/server/plugin/landingPage/default';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [
process.env.NODE_ENV === 'production'
? ApolloServerPluginLandingPageProductionDefault()
: ApolloServerPluginLandingPageLocalDefault({ embed: false }),
],
});

有关这些插件的可用配置选项,请参阅API参考资料

自定义登录页面

您可以从Apollo Server的基URL提供自定义HTML登录页面。要做到这一点,定义自己的自定义插件,调用renderLandingPage方法,如下所示:

index.ts
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [
{
async serverWillStart() {
return {
async renderLandingPage() {
const html = `
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>`;
return { html };
},
};
},
},
],
});

禁用登录页面

您可以通过向Apollo Server构造函数提供以下插件来禁用Apollo Server的登录页面:

index.ts
import { ApolloServerPluginLandingPageDisabled } from '@apollo/server/plugin/disabled';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginLandingPageDisabled()],
});
上一页
MERN堆栈教程
下一页
请求格式
评分文章评分在GitHub上编辑编辑论坛Discord

©2024爱波隆图拉普公司,即Apollo GraphQL。

隐私政策

公司