当前位置: 首页 > 知识库问答 >
问题:

我们如何从图形QL的请求上下文持有者(使用图形QL-spqr-Spring引导-启动器)中获取图形QL的 HttpServlet请求(默认全局上下文)?

罗安和
2023-03-14

我正在使用图形ql-spqr-Spring-启动-启动器库将现有的 Rest API 项目迁移到图形QL。我有一段代码,用于从请求上下文持有者获取当前的 HttpServlet请求

 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
        .currentRequestAttributes()).getRequest();

但是,这将为图形 QL 返回空值。我认为这是正确的,因为对于 GraphQL,我们必须使用默认全局上下文

但是,我尝试了下面的代码:

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
return (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST); 

但它不起作用 - 请求属性返回空值。

我对GraphQL很陌生,有没有人可以帮我知道如何为GraphQL获取http servlet request(DefaultGlobalContext)?这将非常感谢。


共有1个答案

冯卜鹰
2023-03-14

它是这样的:

@GraphQLMutation
public void whateverMutation(@GraphQLRootContext DefaultGlobalContext<NativeWebRequest> ctx) {
    HttpServletRequest req = ctx.getNativeRequest().getNativeRequest(HttpServletRequest.class);
    HttpServletResponse res = ctx.getNativeRequest().getNativeResponse(HttpServletResponse.class);
    ...
}
 类似资料:
  • 尝试实现reactive graph ql并遇到一些问题。 pom相关性, 架构:- 分解器:- 这里,如果我返回Flux或Mono,得到以下错误。 所以,尝试作为列表返回。 但是使用阻塞调用将Flux转换为List也会抛出错误, 这里,得到下面的错误。 使用graphiql进行测试。 http://localhost:8089/graphiql

  • 我已经将我的spring boot应用程序与graphql-spqr-spring-boot-starter https://github.com/leangen/graphql-spqr-spring-boot-starter集成在一起,我需要找到一种方法来禁用graph QL模式自省,因为这是生产中的一个安全问题。

  • 我有一个名为汽车制造商的GraphQL模式,它有两个字段,< code>id和< code>name。我试图通过GraphiQL完成的是将几个数据插入到模式中,但我需要改变这两个提到的字段。 有没有办法在字段上插入所需的值?

  • 我正在尝试使用 graphql 制作 crud 应用程序。但我不确定更新请求。我试过了,但它不起作用。在这里看我的代码。创建帖子和查询帖子工作正常。 我用的是express和express-graphql。我试着查阅文件但是。我无法理解。 (计划或理论的)纲要 分解器 localhost:8080/grapql产生突变 突变结果

  • 使用apollo和neo4j graphql js使用graphql尝试neo4j。这是我的typeDefs: 我总是把记者当成空的。对我错过了什么有什么建议吗?

  • 目前,我正在抛出以返回GraphQL验证错误。它工作得出奇的好,除了在我的日志中用大堆栈跟踪抛出可怕的错误。 在这里,您可以看到我正在检查提交的新用户注册突变,以确保密码相互匹配,并且电子邮件地址尚未使用。 在GraphQL SPQR Spring Boot Starter中,正确的方法是什么。