Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用apollo数据源rest从响应中读取标头_Javascript_Rest_Apollo - Fatal编程技术网

Javascript 使用apollo数据源rest从响应中读取标头

Javascript 使用apollo数据源rest从响应中读取标头,javascript,rest,apollo,Javascript,Rest,Apollo,假设我使用this.getgo执行一个get请求。如何读取响应中的标题?apollo datasource rest包中是否完全缺少此功能?在RESTDataSource中的didReceiveResponse方法中,您可以访问响应对象。在RESTDataSource类中定义/重写如下: import { RESTDataSource } from 'apollo-datasource-rest'; export class Foo extends RESTDataSource {

假设我使用
this.get
go执行一个get请求。如何读取响应中的标题?apollo datasource rest包中是否完全缺少此功能?

在RESTDataSource中的didReceiveResponse方法中,您可以访问响应对象。在RESTDataSource类中定义/重写如下:

import { RESTDataSource } from 'apollo-datasource-rest';

export class Foo extends RESTDataSource {

    async getFoo(id) {
        const responseFoo = await this.get(`/api/v1/foo/${id}`);
        return FooReducer(responseFoo);
    }
}
willSendRequest方法(您可以在其中访问req对象和设置头等)在触发http请求之前运行,并且在接收到http请求的响应后调用didReceiveResponse方法

export class Foo extends RESTDataSource {

    async didReceiveResponse(response, request) {
        // use this.authHeader value in the class anywhere
        this.authHeader = response.headers.get('authorization');
    }
    
    async getFoo(id) {
        const responseFoo = await this.get(`/api/v1/foo/${id}`);
        console.log(this.authHeader)
        return FooReducer(responseFoo);
    }
}