a6-recipe-graphql-proxy
概览
APISIX 通过三个内置变量提供 GraphQL 支持,无需上游自行解析 GraphQL 请求,即可根据查询内容进行路由并应用策略:
| 变量 | 描述 | 初始值 |
|---|---|---|
graphql_name | 查询中的操作名称 | "getUser" |
graphql_operation | 操作类型 | "query"、"mutation" |
graphql_root_fields | 请求的顶级字段 | ["user", "orders"] |
APISIX 会从 Content-Type 为 application/json 或 application/graphql 的 POST 请求,以及带有 query 参数的 GET 请求中自动提取这些变量。
适用场景
- 将不同的GraphQL操作路由到不同的后端
- 按操作类型应用不同的限流策略(查询与变更)
- 限制特定消费者可以执行的操作
- 使用
degraphql将 REST 端点转换为 GraphQL 查询 - 向GraphQL API添加安全层(身份认证、限流)