如何在 Netflix DGS 解析器中获取标头信息

Posted

技术标签:

【中文标题】如何在 Netflix DGS 解析器中获取标头信息【英文标题】:how to get the header info in Netflix DGS resolver 【发布时间】:2021-06-17 15:33:57 【问题描述】:

我们可以编写如下查询解析器层

@DgsData(parentType = "Query", field = "answersByQuestionUuid")
    public List<Answer> answersByQuestionUuid(@InputArgument("questionUuid") UUID questionUuid,
                                              @InputArgument("enhancedContent") boolean enhancedContent,
                                              @InputArgument("templateName") String templateName)  
        if (enhancedContent) 
            return getStructuredAnswersByQuestionUUID(questionUuid.toString(), templateName);
        
        return getAnswersByQuestionUUID(questionUuid);
    

如何在解析器中获取 HTTP 标头。

【问题讨论】:

【参考方案1】:

除了 DGS 输入参数之外,您还可以使用 Spring 框架中的 @RequestHeader 注释来接收 HTTP 请求标头值。例如:

    public List<Answer> answersByQuestionUuid(@InputArgument("questionUuid") UUID questionUuid,
                                              @RequestHeader("Content-Type") String contentType)  

【讨论】:

netflix.github.io/dgs/datafetching/…

以上是关于如何在 Netflix DGS 解析器中获取标头信息的主要内容,如果未能解决你的问题,请参考以下文章

使用 neo4j-graphql-js 时如何访问自定义 graphQL 解析器中的请求标头?

DGS 代码生成插件仅生成模式的类型

如何在 iOS 客户端中传递 AWS AppSync 自定义请求标头?

如何在 GraphQL 解析器中添加用于缓存的 redis 客户端

如何知道 Sangria GraphQL 中对象解析器中的请求字段

深度好文:Netflix奈飞微服务架构设计解析