标签: graphql-playground

是否可以为 Apollo Server 附带的 GraphQL Playground 定义 HTTP 标头?

我想为 GraphQL Playground 定义一些 http 标头,以默认和/或始终启用。基本上,我想补充一点:

"apollographql-client-name": "playground"
"apollographql-client-version": "yada-yada"
Run Code Online (Sandbox Code Playgroud)

能够将来自 Playground 的请求与 Apollo Studio 上的任何其他请求区分开来。最好的方法是什么?

通过 GraphQL Playground 我指的是 Apollo 运行的那个,这里记录的那个:https ://www.apollographql.com/docs/apollo-server/testing/graphql-playground/

我当前的 ApolloServer 配置如下所示:

let apolloServerExpressConfig: ApolloServerExpressConfig = {
  schema: schema,
  playground: {
    settings: {
      "request.credentials": "include",
    },
  },
}
Run Code Online (Sandbox Code Playgroud)

如果我向其添加选项卡以尝试定义标题,如下所示:

let apolloServerExpressConfig: ApolloServerExpressConfig = {
  schema: schema,
  playground: {
    settings: {
      "request.credentials": "include",
    },
    tabs: [{
      headers: {
        "apollographql-client-name": "playground",
        "apollographql-client-version": "yada-yada",
      },
    }],
  },
}
Run Code Online (Sandbox Code Playgroud)

GraphQL playground 在重新加载页面时不再恢复所有带有查询的选项卡,这非常有用。我认为一旦您定义了选项卡,就会删除一些自动选项卡管理。我很高兴为新选项卡创建定义了默认标头,如果这些标头暴露给客户端就可以了。

我的应用程序已经定义了标题,因此,我可以区分应用程序和查询它的任何其他内容,但我想区分我的应用程序、游乐场和其他任何内容(后一组应该是空的)。

apollo-server graphql-playground

5
推荐指数
1
解决办法
6457
查看次数

Docusaurus v2 和 GraphQL Playground 集成

我想在我的一个页面中将GraphQL Playground渲染为React 组件,但由于webpack 中缺失而失败。有没有办法在文档中解决这个问题,或者我是否需要使用新的 webpack 配置创建新插件?file-loader

将 Playground 和 Docusaurus 集成到底是个好主意吗?

谢谢你的想法...

graphql docusaurus graphql-playground

5
推荐指数
1
解决办法
1251
查看次数

如何将共享到 GraphQL Bin 选项添加到我的 Apollo 服务器游乐场?

我正在使用 Apollo 服务器来实现 GraphQL API,它会自动为我提供一个 GraphQL Playground。根据GraphQL Playground 文档,我应该拥有(或至少能够启用)一个“共享”功能,该功能将创建一个 GraphQL Bin 链接(例如https://graphqlbin.com/OksD),我可以将其发送给同事,以便他们可以查看并运行我的相同查询。

不幸的是,这不能从 Apollo 服务器开箱即用。我如何启用此功能?如果这是不可能的,是否有另一种简单的方法可以让我从 GraphQL Playground 导出查询以供其他人导入?(我看到“复制卷曲”选项,但我没有看到从卷曲导入的简单方法。)

GraphQL Bin 图像

graphql apollo-server prisma-graphql graphql-playground

4
推荐指数
1
解决办法
1071
查看次数

GraphQL 操场类型详细的多行注释?

我正在尝试使用 GraphQL 记录我的 API。对于可读性问题,我想在多行中留下评论,但它似乎不适用于常规的 '\n' 换行符

"""
  Return:\n true : DB save successful\n false : DB save unsuccessful
"""
Run Code Online (Sandbox Code Playgroud)

这是我试过的

但是它输出完全相同,而不在新行中放置行

Return:\n true : DB save successful\n false : DB save unsuccessful
Run Code Online (Sandbox Code Playgroud)

是否可以在新行中排列文本,例如:

Return:
 true : DB save successful
 false : DB save unsuccessful
Run Code Online (Sandbox Code Playgroud)

graphql graphql-playground

3
推荐指数
1
解决办法
3605
查看次数

GraphQL 游乐场 - 将 Cookie 作为 Http 标头“消失”发送

我正在 GraphQL Playground 中测试一些实现,我想在其中发送一个特定的 cookie,以便我可以在我的解析器中获取它。我在操场上使用内置的 Http Headers 窗格:

在此处输入图片说明

但是,当我添加名为Cookieor 的标头cookie时,当我尝试在解析器中 console.log 时它不会显示。所有其他自定义 Http 标头都没有问题。

在此处输入图片说明

如上面的屏幕截图所示,出现了测试头,但没有出现 cookie 头。我正在使用cookieParser,这可能是cookie标题消失的原因,但我不确定。这是我的 console.log 部分的屏幕截图:

在此处输入图片说明

当我尝试 console.log 时req.cookies,我什么也没得到,这是使用 cookieParser 的好处之一。

在此处输入图片说明 在此处输入图片说明

我的 ApolloServer 实现如下:

const server = new ApolloServer({
  typeDefs: schema
  resolvers,
  dataSources: () => ({
    // ...
  }),
  context: ({req, res}) => ({
    models,
    session: req.session,
    req,
    res
  }),
  // ... and the rest is not important
});
Run Code Online (Sandbox Code Playgroud)

创建“自定义”cookie 标头可以解决问题,例如somecookie: <key>=<value>,但我认为这不是最佳做法,并且宁愿避免这种情况。我希望有人知道为什么我的 cookieheader没有出现,或者我可以做些什么让它出现?

cookies apollo graphql graphql-playground restdatasource

3
推荐指数
1
解决办法
487
查看次数

GraphQL Playground 的键盘快捷键

GraphQL我是一名 Android 开发人员,但刚刚开始根据新项目的要求进行操作。我正在尝试在 中查询prisma-lab's graphQL-playground

我在单行中复制并粘贴了一个很长的查询,但我只想将其格式化JSON。有人知道如何做到这一点吗?或者任何人都知道有关此 prisma-lab 的 graphQL-playground 的更多快捷方式。

复制查询:

{ userInfo(userName:"xyz"){   id  subtitle  userLastName   avatar } }
Run Code Online (Sandbox Code Playgroud)

格式化查询:

{
  userInfo(userName: "xyz") {
    id
    subtitle
    userLastName
    avatar
  }
}
Run Code Online (Sandbox Code Playgroud)

建议是否有人知道如何格式化此查询,以及是否有任何其他可用于 GraphQL-Playground 的键盘快捷键。谢谢。

graphql prisma-graphql graphql-playground

1
推荐指数
1
解决办法
2143
查看次数

在 Apollo GraphQL 游乐场(版本 3)中允许 Cookie

根据阿波罗文档

如果您的服务器使用 cookie 进行身份验证,您可以将端点配置为与https://studio.apollographql.com共享这些 cookie 。要进行此设置,您的 cookie 值必须包含SameSite=None; Secure. 此外,这些 CORS 标头必须存在于服务器对 Studio 的响应中:

Access-Control-Allow-Origin: https://studio.apollographql.com
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)

我已经完成了那里提到的所有事情。我使用的是express,所以我使用cors中间件来设置标头:

 app.use(
    cors({
      credentials: true,
      origin: "https://studio.apollographql.com",
    })
  );
Run Code Online (Sandbox Code Playgroud)

但每当我在操场上打开“允许 Cookie”的开关时,状态都会变成红色(即“无法到达服务器”)。我的编辑器和nodemon没有显示错误。关闭“允许 Cookie”开关可以解决问题,但会禁用 Cookie 功能。

我该如何解决这个问题?

cookies graphql apollo-server graphql-playground

1
推荐指数
1
解决办法
1495
查看次数