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

Quarkus GraphQL:如何修改默认端点?

修改Quarkus中SmallRye GraphQL的端点路径

嘿,我之前在K8s环境部署Quarkus GraphQL应用时也碰到过这个需求,刚好可以给你几个靠谱的方案:

方法一:通过配置文件自定义端点

你用的是smallrye-graphql-servlet依赖,直接在application.properties(或者application.yaml)里添加一行配置就能修改默认的GraphQL端点路径:

# 替换<service-name>为你的实际服务名称
smallrye.graphql.servlet.mapping=/<service-name>/graphql/*

如果偏好YAML格式,也可以这么写:

smallrye:
  graphql:
    servlet:
      mapping: "/<service-name>/graphql/*"

这个配置会把GraphQL的所有请求(包括查询、突变以及GraphiQL界面如果开启的话)都映射到你指定的路径下。

方法二:配合K8s Ingress完成路径转发

修改完应用配置后,别忘了同步更新K8s Ingress的规则,确保外部请求能正确路由到新的端点。举个Ingress配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: your-service-ingress
  annotations:
    # 根据你的Ingress控制器添加必要注解,比如NGINX的重写规则
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - host: your-domain.example.com
    http:
      paths:
      - path: /<service-name>(/|$)(.*)
        pathType: ImplementationSpecific
        backend:
          service:
            name: your-quarkus-service
            port:
              number: 8080

这里的重写注解是为了让Ingress把/your-service/graphql这类请求转发到应用的/your-service/graphql路径上,如果你不需要重写逻辑,也可以直接把Ingress的path设为/<service-name>/graphql。

验证配置是否生效

启动应用后,你可以通过访问http://<your-service-ip>:8080/<service-name>/graphql来测试端点是否正常工作。如果开启了GraphiQL(默认是开启的),也可以通过这个路径打开GraphiQL界面进行调试。

需要注意的是,你使用的smallrye-graphql-servlet 1.0.1版本已经支持这个配置项,所以不需要担心版本兼容问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:57:52