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'],
...
];