zestic/webonxy-middleware
Composer 安装命令:
composer require zestic/webonxy-middleware
包简介
Webonxy GraqhQL middleware
README 文档
README
To use the middleware in Laminas Mezzio, configure the factories
in config/autoload/dependencies.global.php
return [ 'dependencies' => [ 'factories' => [ \GraphQL\Server\StandardServer::class => \Xaddax\GraphQL\Factory\StandardServerFactory::class, \Zestic\GraphQL\Middleware\GraphQLMiddleware::class => \Xaddax\GraphQL\Factory\GraphQLMiddlewareFactory::class, ], ], ];
Add configuration in config/autoload/graphql.global.php
return [ 'graphQL' => [ 'middleware' => [ 'allowedHeaders' => [ 'application/graphql', 'application/json', ], ], 'schema' => \Path\To\Schema::class, // optional, defaults to webonxy Schema 'schemaConfig' => [], // optional, if not configured expected in Schema class constructor 'server' => \Path\To\Server::class, // not yet implemented, defaults to webonxy StandardServer 'serverConfig' => [ 'context' => \Zestic\GraphQL\Context\TokenContext::class 'schema' => \Path\To\Your\Schema::class, ], ], ];
see the WebOnyx Server Configuration Documentation for the full options for the server config.
You'll need to set up the route. In config/routes.php
return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void { $app->post('/graphql', \Zestic\GraphQL\Middleware\GraphQLMiddleware::class, 'graphql'); };
Schema Definition Language
You can also use a Schema Definition Language as discussed in the WebOnxy documentation.
In config/autoload/graphql.global.php change the schema in the serverConfig to generatedSchema
return [ 'graphQL' => [ 'serverConfig' => [ 'schema' => 'generatedSchema', ], ], ];
Then inside of the graphQL config add the generatedSchema configuration
return [ 'graphQL' => [ 'generatedSchema' => [ 'parserOptions' => [ 'experimentalFragmentVariables' => true, // to parse fragments 'noLocation' => false, // default, set true for development ], 'cache' => [ 'alwaysEnabled' => false, // default, set to true to cache when the system cache is not enabled 'directoryChangeFilename' => 'directory-change-cache.php', // default 'schemaCacheFilename' => 'schema-cache.php', // default ], 'schemaDirectories' => [ '/full/path/to/schema-directory-1', '/full/path/to/schema-directory-2', ], ], ], ];
See the documentation for
parserOptions
The cached data is stored in data/cache/graphql.
统计信息
- 总下载量: 86
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-11-14