You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus 3.x下如何创建接收GraphQLRequest的GraphQL服务?

Quarkus 3.x 自定义 GraphQL 端点失效的解决方案

在 Quarkus 3.x 中使用 quarkus-smallrye-graphql 和 quarkus-resteasy-reactive-jackson 时,自定义的 GraphQL 端点无法正常工作,主要是框架默认行为和依赖配置的变化导致,以下是需要调整的关键步骤:

  • 禁用框架自动生成的 GraphQL 端点
    Quarkus 3.x 的 SmallRye GraphQL 扩展会自动创建 /graphql 标准端点,与你自定义的端点产生冲突。需要在 application.properties 中添加配置关闭自动端点:

    quarkus.smallrye-graphql.path=none
    
  • 调整依赖配置
    如果你要完全自定义 GraphQL 管理器(包括 Schema 生成、解析逻辑),不需要依赖 quarkus-smallrye-graphql——这个扩展是为注解式 GraphQL 开发(比如 @GraphQLApi、@Query)设计的。你应该直接引入原生 GraphQL Java 依赖,示例 Maven 配置:

    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphql-java</artifactId>
        <version>19.2</version> <!-- 选择适配 Quarkus 3.x 的版本 -->
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
    </dependency>
    
  • 确保请求响应类的序列化正常
    在 Resteasy Reactive 环境下,GraphQLRequest 和 GraphQLResponse 需要被 Jackson 正确序列化/反序列化。确保这两个类有标准的 getter/setter 方法,或者添加 Jackson 注解(如 @JsonProperty)明确字段映射。

  • 验证类扫描配置
    确认你的 GraphQLResource 类在 Quarkus 的扫描范围内,比如放在应用的根包下,或者通过 quarkus.index-dependency 配置指定需要扫描的包路径。

内容的提问来源于stack exchange,提问作者Novoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:02:12