overblog/graphql-subscription
Composer 安装命令:
composer require overblog/graphql-subscription
包简介
GraphQL native subscription.
README 文档
README
This library allow using GraphQL subscription over Mercure protocol with any implementation of GraphQL PHP. It Comes out-of-the-box with a Symfony Bridge so it can be easily combine with OverblogGraphQLBundle or API Platform or other Symfony implementation based on GraphQL PHP.
Installation
composer req overblog/graphql-subscription
Default builder executor
<?php use GraphQL\Executor\ExecutionResult; use GraphQL\GraphQL; function ( $schema, $source, $rootValue = null, $context = null, $variableValues = null, ?string $operationName = null ): ExecutionResult { return GraphQL::executeQuery(...func_get_args()); }
CORS preflight headers
This library does not handle natively CORS preflight headers.
Symfony
Installation without flex
Add the OverblogGraphQLSubscriptionBundle to your application's kernel:
public function registerBundles() { $bundles = [ // ... new Overblog\GraphQLSubscription\Bridge\Symfony\OverblogGraphQLSubscriptionBundle(), // ... ]; // ... }
Configuration
Symfony Flex generates:
-
default configuration in
config/packages/graphql_subscription.yaml.overblog_graphql_subscription: topic_url_pattern: "http://localhost:8000/subscriptions/{channel}/{id}.json" mercure_hub: # Will use the mercure bundle default publisher handler_id: ~ # Uncomment to use without mercure bundle # url: "https://mercure.roks/hub" # publish: # secret_key: "!mySuperPublisherSecretKey!" # Uncomment to expose public hubUrl on start in payload # public_url: "https://mercure.roks/hub" subscribe: secret_key: "!mySuperSubscriberSecretKey!" # Uncomment to modify storage filesystem default path # storage: # path: "%kernel.project_dir%/var/graphql-subscriber" # The graphql query handler # for OverblogGraphQLBundle: "Overblog\\GraphQLBundle\\Request\\Executor::execute" # for API-Plateform: "api_platform.graphql.executor::executeQuery" graphql_executor: ~ schema_builder: ~
-
default routes in
config/routes/graphql_subscription.yamloverblog_graphql_subscription_endpoint: resource: "@OverblogGraphQLSubscriptionBundle/Resources/config/routing/single.yaml" prefix: /subscriptions # Only for Symfony >= 4.2 # trailing_slash_on_root: false # Uncomment to enabled multiple schema #overblog_graphql_subscription_multiple_endpoint: # resource: "@OverblogGraphQLSubscriptionBundle/Resources/config/routing/multiple.yaml" # prefix: /subscriptions
Handling CORS preflight headers
NelmioCorsBundle is recommended to manage CORS preflight, follow instructions to install it.
Here a configuration assuming that subscription endpoint is /subscriptions:
nelmio_cors: defaults: origin_regex: true allow_origin: ['%env(CORS_ALLOW_ORIGIN)%'] allow_methods: ['GET', 'OPTIONS', 'POST'] allow_headers: ['Content-Type'] max_age: 3600 paths: '^/subscriptions': ~
统计信息
- 总下载量: 209
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 15
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-12