如何使用 ApolloClient 记录 HTTP 请求和响应

Posted

技术标签:

【中文标题】如何使用 ApolloClient 记录 HTTP 请求和响应【英文标题】:How to log HTTP request and response with ApolloClient 【发布时间】:2019-03-16 14:42:49 【问题描述】:

我同时使用来自“apollo-client”和“apollo-boost”库的ApolloClient,例如

 const client = new ApolloClient(
  uri: 'https://www.myapp.no/api/',
  request: async (operation) => 

    console.log(operation)

    operation.setContext(
      headers: 
        authorization: tokenHeader,
        'Content-Type': 'application/json'
      
    )
  ,
  onError: (error) => 
    if (error.graphQLErrors) 
      console.log('ApolloClient graphQLErrors')
      console.log(graphQLErrors)
    
    if (error.networkError) 
      console.log('ApolloClient networkError')
      console.log(graphQLErrors)
    
  
)

operation 对象仅显示variablesquery 信息。如何在后台记录实际的 HTTP 请求和响应?

我想查看传出的请求标头和参数,以及响应标头和状态代码

这似乎是一项非常简单的任务,但我已经花了很长时间搜索,但没有提及。

【问题讨论】:

【参考方案1】:

你可以使用这个很棒的扩展:https://github.com/apollographql/apollo-client-devtools

【讨论】:

这对于本地开发来说很好,但我希望能够记录以监控生产中部署的站点。

以上是关于如何使用 ApolloClient 记录 HTTP 请求和响应的主要内容,如果未能解决你的问题,请参考以下文章

如何将 fetcher 传递给 ApolloClient()?

apolloClient.query 不使用中间件,而 <Query /> 使用

如何在 ApolloClient.query() 上使用“缓存和网络”策略

使用 ApolloClient 执行 GraphQL 查询时如何正确处理加载和部分状态?

仅在 useMutation 成功执行后如何使用 apolloClient 的“onSuccess”

在 Gatsby 中使用 ApolloClient 与 localhost / 本地 IP uri