我可以注入什么来了解我所处的上下文,即我的服务是从graphql请求或http请求中调用的。
我有一个请求范围服务,需要返回一个标头。标头存储在REQUEST
对象上,如果它是HTTP上下文,或者可以在graphql上下文上使用(如我之前设置的),则可以自动注入该对象-因此
return this.request.headers["test"]
OR
return this.context.request.headers["test"]
但是我需要了解我在哪个上下文中返回正确的对象
有什么想法吗?
预先感谢
答案 0 :(得分:1)
您可以只创建一个辅助函数来获取标头:
getHeader(key: string) {
if (this.request && this.request.headers && this.request.headers[key]) {
return this.request.headers[key];
} else if (this.context.request && this.context.request.headers && this.context.request.headers[key]) {
return this.context.request.headers[key];
} else {
throw new BadRequestException(`Required header ${key} is missing`);
}
}