Angular2 中的 Apollo 客户端自定义标头和附加变量

Posted

技术标签:

【中文标题】Angular2 中的 Apollo 客户端自定义标头和附加变量【英文标题】:Apollo-client custom Headers and additional variables in Angular2 【发布时间】:2017-05-01 20:33:15 【问题描述】:

如何使用 Angular2 使用 npm apollo-client 添加自定义标头并在请求正文中引入其他自定义变量。我希望在我的 graphQL 查询中引入一个额外的自定义变量,例如请求正文中的默认“变量”对象以及自定义标头。我尝试使用 createNetworkInterface 的 applyMiddleware。

以下是预期的请求正文格式:


   "query":"",
   "variables":"",
   "customVariable":"", //This is additional which wants to be introduced
   "operationName":""

【问题讨论】:

你试过什么?在此处查看有关中间件的文档,他们可以按照您喜欢的方式修改请求:dev.apollodata.com/core/network.html#networkInterfaceMiddleware 【参考方案1】:

对于我们的Angular 2 examples 之一,我们正在添加一个自定义标题,如下所示:

networkInterface.use([
  applyMiddleware (req, next) 
    if (!req.options.headers) 
      // Create the header object if needed.
      req.options.headers = ;
    
    req.options.headers['x-graphcool-source'] = 'example:angular-apollo-instagram';
    next();
  ,
]);

【讨论】:

如何在请求正文中添加附加变量?? 它是一个你想添加到响应中的常量值吗?如果不是,新变量依赖什么参数? 中间件可以注入服务吗?

以上是关于Angular2 中的 Apollo 客户端自定义标头和附加变量的主要内容,如果未能解决你的问题,请参考以下文章

如何手动将 apollo 自定义标量映射到客户端类型

使用 react-apollo 自定义 InputTypes

Apollo 客户端:如何对自定义事件执行查询

订阅未定义的错误处理 - Apollo 和 Angular 2

全局处理 apollo graphql 错误并在错误时呈现自定义 ErrorHandler 组件

watchQuery (Angular-Apollo) 的缓存管理