zestic / webonxy-middleware
Webonxy GraqhQL middleware
v0.9.1
2023-05-02 03:45 UTC
Requires
- php: ^8.0
- psr/container: ^1.0 || ^2.0
- psr/http-server-middleware: ^1.0
- psr/log: ^2.0 || ^3.0
- webonyx/graphql-php: ^15.0.0
Requires (Dev)
- codeception/codeception: ^4.0.0
- codeception/module-asserts: dev-master
- laminas/laminas-diactoros: ^2.4
- phpspec/prophecy: ~1.0
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' => [ ], ], ];
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'); };