编程

Laravel 中使用GraphQL : LightHouse (1)

692 2021-12-20 09:59:38

安装

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