Laravel 中使用GraphQL : LightHouse (1)
安装
composer require nuwave/lighthouse
发布默认schema
php artisan vendor:publish --tag=lighthouse-schema
Lumen
在bootstrap/app.php中注册服务提供者:
$app->register(\Nuwave\Lighthouse\LighthouseServiceProvider::class);
Lighthouse 通过多个服务提供者(service providers)提供许多特性。由于Lumen不支持自动发现,需要手动去单独注册你所需要特性。查看composer.json, extra.laravel.provider 区域包含了默认的服务提供者。
IDE支持
Lighthouse重度使用了SDL 和 schema语法检测。想要改进你的编辑体验,可以使用artisan明明生成定义文件:
php artisan lighthouse:ide-helper
安装GraphQL调试工具
建议安装GraphQL Playground.
composer require mll-lab/laravel-graphql-playground
安装后, 可查看 /graphql-playground 进行尝试.
你可以使用任何一个GraphQL 客户端, 确保其指向配置文件定义的URL。默认是 /graphql.
配置
Lighthourse默认配置开箱即用,通过以下命令发布配置文件:
php artisan vendor:publish --tag=lighthouse-config
默认配置文件位于config/lighthouse.php
CORS
GraphQL API 可以被多个客户端消费,这些客户端可以跟服务器同域名,也可以不同域。可以在config/cors.php中配置启用CORS :
return [
- 'paths' => ['api/*', 'sanctum/csrf-cookie'],
+ 'paths' => ['api/*', 'graphql', 'sanctum/csrf-cookie'],
...
];