bigfork/silverstripe-graphql-batching

为Silverstripe添加基于HTTP的GraphQL操作批处理支持

安装次数: 1,174

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 5

分支: 1

开放性问题: 0

类型:silverstripe-vendormodule

1.0.0 2022-02-11 16:28 UTC

This package is auto-updated.

Last update: 2024-09-11 21:53:06 UTC


README

添加了对使用Apollo的BatchHTTPLink的基本支持,以在单个HTTP请求中发送多个GraphQL操作。

注意:此方法不会并行执行操作 - 它们是按顺序逐个执行的。因此,这并不保证会提高应用程序的性能 - 请自行研究和测试!

安装

composer require bigfork/silverstripe-graphql-batching

用法

为您的模式注册一个新的注入器服务(在下面的示例中,我们使用模式名称default),然后指向您的GraphQL路由

SilverStripe\Core\Injector\Injector:
  Bigfork\SilverstripeGraphQLBatching\Controller.default:
    class: Bigfork\SilverstripeGraphQLBatching\Controller
    constructor:
      schema: default
      handler: '%$SilverStripe\GraphQL\QueryHandler\QueryHandlerInterface.default'
      batchMax: 10
SilverStripe\Control\Director:
  rules:
    'graphql': '%$Bigfork\SilverstripeGraphQLBatching\Controller.default'

请注意: batchMax是单个HTTP请求中可以包含的最大操作数。它应与您在客户端代码中创建BatchHttpLink时设置的batchMax值匹配(默认为10),并且应尽可能低。此值越高,就越有可能成为DDoS攻击向量:如果您允许某人通过单个HTTP请求运行数十个GraphQL操作,那么过载您的服务器就变得非常简单。