【问题标题】:How to get GraphQL request context using generated schema如何使用生成的模式获取 GraphQL 请求上下文
【发布时间】:2021-06-21 09:15:44
【问题描述】:

我需要获取身份验证标头并将其传递给我的获取。我找到了几种不同的方法来做到这一点,但想要访问上下文以便我可以抓住它。我看到的所有文档都与生成模式的打字稿方式无关。

所以问题是某人如何在您的查询/突变中获取标头值??

【问题讨论】:

标签: typescript graphql graphql-schema


【解决方案1】:

所以我从来没有在网上找到答案,但决定我应该发布这个以防其他人遇到这个问题。

首先您需要设置将要使用的上下文

const schema = await buildSchema({
    resolvers: [
        YourResolver
    ]
});

const apolloServer = new ApolloServer({
    schema,
    context: ({ req }) => {
        // this will return something you can pick up using @Ctx("param")
        const someValue: string = req.headers["some-value"] as string;
        var obj = { 
            value: someValue
        };
        return obj;
    }
});

其次你需要引用它

@Query(() => string, { nullable: true })
async Get (
    @Ctx("value") val: string
): Promise<string> {
    return new Promise<string>((res:any) => { res(value); });
}

适用于查询、突变和字段解析器。没有参数应该返回整个对象,还没有测试过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2019-10-25
    • 2017-08-03
    • 2010-11-17
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多