标签: apollo

Apollo客户端:如何简单地调试400代码错误?

我正在使用Apollo-client而且我不明白为什么这么难调试我的错误:我正在尝试对我的石墨烯python实现GraphQL执行mutate调用.最终得到400错误代码,我无法检索信息.

例如:当我在/ graphQL接口上尝试我的石墨烯服务时,它会将有用的错误作为错误输入或错误的方法名称返回给我.在这里,在apollo客户端,它只给我一个400代码错误.这对我没有任何帮助.那么有可能从我的apolo客户端获取石墨烯的错误信息,而不是无用的400代码错误吗?

这是一个例子,来自我的石墨烯界面(/ graphQL):

mutation myMutation {
  uploadFile(input:"") {
    success
  }
}
Run Code Online (Sandbox Code Playgroud)

将输出:

{
  "errors": [
    {
      "message": "Argument \"input\" has invalid value \"\".\nExpected \"UploadFileMutationInput\", found not an object.",
      "locations": [
        {
          "column": 20,
          "line": 2
        }
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我在apollo客户端(js)上尝试相同时:

client.mutate({
  mutation: gql`
    mutation($file: Upload!) {
      uploadFile(input: $file) {
        success
      }
    }
  `,
  variables: { file } })
  .then(console.log)
  .catch((e) => { console.log("catch", e) })
Run Code Online (Sandbox Code Playgroud)

我明白了 Error: Network error: Response not successful: Received status code 400

我的捕获从未被调用过,文档根本没有帮助我. …

debugging apollo graphql

15
推荐指数
5
解决办法
9929
查看次数

当没有数据返回时,GraphQL 突变返回类型应该是什么?

我有一个 Apollo GraphQL 服务器,我有一个删除记录的突变。此更改接收资源的 UUID,调用 REST(Ruby on Rails)API,当删除成功时,该 API 仅返回成功的 HTTP 代码和空正文(204 无内容)以及带有错误的 HTTP 错误代码删除不起作用时的消息(404 或 500,典型的 REST 删除端点)。

在定义 GraphQL 突变时,我必须定义突变返回类型。突变返回类型应该是什么?

input QueueInput {
  "The queue uuid"
  uuid: String!
}


deleteQueue(input: QueueInput!): ????????
Run Code Online (Sandbox Code Playgroud)

我可以使它与几种不同类型的返回(布尔值、字符串等)一起工作,但我想知道什么是最佳实践,因为我尝试过的返回类型都没有感觉是正确的。我认为重要的是,在调用突变后,在客户端我有一些关于如果事情进展顺利(API 返回 204 不是内容)或如果发生一些错误(API 返回 404 或 500)发生了什么的信息,并且最好有一些关于错误。

javascript rest apollo graphql apollo-server

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

你如何通过Githubs API v4获得总贡献

我一直在浏览Github V4 API文档,我似乎无法找到查询年度总贡献的方法(如github配置文件中所示).有没有人设法使用新API从您的个人资料中获取一些统计信息?

我在github上使用graphQL和个人访问令牌,并设法获得最小的用户配置文件数据; 用户名,档案名称等

api github github-api apollo graphql

14
推荐指数
2
解决办法
541
查看次数

将自定义标头添加到apollo客户端轮询请求

我正在使用apollo-client库来查询来自我的Graphql服务器的数据.一些查询通过apollo轮询能力每隔5秒发送到服务器.

有一种通用的方法可以为从我的客户端轮询发送的所有请求添加自定义标头吗?

谢谢你的帮助 :)

javascript apollo graphql graphql-js apollo-client

14
推荐指数
2
解决办法
1万
查看次数

Apollo - update()方法被调用两次,两次都是乐观/假数据

我完全陷入了阿波罗问题,为此我打开了一个GitHub问题并且没有响应.

我正在使用阿波罗变种optimisticResponse.根据我的理解,它应该工作的方式是update()两次调用:首先使用乐观数据,然后再使用来自网络的实际数据.

但由于某种原因,我的代码不是这样的.我接到两个update()电话,都有乐观的数据.

这是一个演示此行为的回购:https://github.com/ffxsam/apollo-update-bug

  1. 纱线&&纱线开发
  2. 在浏览器中打开,打开控制台
  3. 输入一些文字然后按Enter键
  4. 重复以上
  5. 请注意控制台中有关重复键的错误.发生这种情况是因为临时ID"??" 没有被真正的UUID替换(可选)您可以打开Vue DevTools(如果可用)并检查数据以查看它是否正确

apollo vue.js graphql vue-apollo aws-appsync

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

如何使用Apollo Client按顺序链接两个GraphQL查询

我正在使用Apollo Client作为前端,使用Graphcool作为后端.有两个查询firstQuerysecondQuery我希望他们在序列页面打开时调用.下面是示例代码(此处未列出TestPage组件的定义):

export default compose(
        graphql(firstQuery, {
            name: 'firstQuery'
        }),
        graphql(secondQuery, { 
            name: 'secondQuery' ,
            options: (ownProps) => ({
                variables: {
                   var1: *getValueFromFirstQuery*
                }
            })
        })
)(withRouter(TestPage))
Run Code Online (Sandbox Code Playgroud)

我需要var1secondQuery从的结果firstQuery.我如何使用Apollo Client和编写?或者还有其他方法吗?提前致谢.

apollo graphql react-apollo graphcool apollo-client

14
推荐指数
2
解决办法
5275
查看次数

graphql 模式循环引用是反模式吗?

像这样的 graphql 架构:

type User {
  id: ID!
  location: Location
}

type Location {
  id: ID!
  user: User
}
Run Code Online (Sandbox Code Playgroud)

现在,客户端发送一个graphql查询。理论上,UserLocation可以无限循环引用对方。

我认为这是一种反模式。据我所知,没有中间件或方法可以限制查询的嵌套深度graphqlapollo社区。

这种无限嵌套深度查询会为我的系统消耗大量资源,例如带宽、硬件、性能。不仅是服务器端,还有客户端。

所以,如果graphql模式允许循环引用,应该有一些中间件或方法来限制查询的嵌套深度。或者,为查询添加一些约束。

也许不允许循环引用是一个更好的主意?

我更喜欢发送另一个查询并在一个查询中执行多个操作。这要简单得多。

更新

我找到了这个库:https : //github.com/slicknode/graphql-query-complexity。如果 graphql 不限制循环引用。该库可以保护您的应用程序免受资源耗尽和 DoS 攻击。

apollo graphql

14
推荐指数
3
解决办法
5163
查看次数

当所有请求都具有相同的 URL 时,如何在开发工具网络选项卡中区分 GraphQL 请求?

当所有请求都具有相同的 URL 时,如何在开发工具网络选项卡中区分 GraphQL 请求?

我的所有请求的目标都是/api/graphql为了区分它们,我需要单击每个请求,切换到“标头”选项卡,向下滚动到“请求有效负载”部分并阅读查询。这意味着我几乎无法对请求进行概览,因此我必须单击多个请求才能找到我想要检查的请求。

人们如何解决这个问题?

google-chrome-devtools apollo graphql

14
推荐指数
3
解决办法
9904
查看次数

如何修复`警告:文本内容不匹配。服务器:“一些数据”客户端:“正在加载...”`

我在 SSR 应用程序的初始加载时收到此错误:Warning: Text content did not match. Server: "SOME DATA" Client: "Loading..." 如何在不将loading标志设置为 true 的情况下初始化应用程序的 客户端?

我正在使用 react、express 和 apollo 设置 SSR。我从渲染器服务器获得了一个正确渲染的 HTML 数据,但是当客户端包加载时,它试图重新获取数据。Hydration 已设置,并且来自渲染器服务器的所有数据都被注入到页面的 HTML 中。

/index.js

<Query query={GET_USERS} variables={queryVariables}>
    {({
        loading,
        error,
        data
    }) => {
        if (loading) return <p>Loading...</p>;
        if (error) return `Error: ${error}`;
        return data.users.map(user => <p key={user.id}>{user.login}</p>);
    }}
</Query>
Run Code Online (Sandbox Code Playgroud)

/renderer.js

export default async (req, client) => {
    const serverSideApp = (
        <ApolloProvider client={client}>
            <StaticRouter location={req.path} context={{}}>
                <div>{renderRoutes(RoutesList)}</div>
            </StaticRouter>
        </ApolloProvider>
    );
        return …
Run Code Online (Sandbox Code Playgroud)

apollo reactjs graphql server-side-rendering react-apollo

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

如何使用`apollo-server`加载.graphql文件?

我目前正在使用单独的.graphql文件加载 GraphQL 模式,但它封装在字符串中:

schema.graphql

const schema = `
  type CourseType {
    _id: String!
    name: String!
  }

  type Query {
    courseType(_id: String): CourseType
    courseTypes: [CourseType]!
  }
`

module.exports = schema
Run Code Online (Sandbox Code Playgroud)

然后将其用于apollo-server

index.js

const schema = `
  type CourseType {
    _id: String!
    name: String!
  }

  type Query {
    courseType(_id: String): CourseType
    courseTypes: [CourseType]!
  }
`

module.exports = schema
Run Code Online (Sandbox Code Playgroud)

有没有办法简单地加载一个看起来像这样的 .graphql ? schema.graphql

type CourseType {
  _id: String!
  name: String!
}

type Query {
  courseType(_id: String): CourseType
  courseTypes: [CourseType]! …
Run Code Online (Sandbox Code Playgroud)

node.js apollo graphql apollo-server

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