xkojimedia / laravel-altair-graphql
轻松将 Altair GraphQL 客户端集成到您的 Laravel 项目中
Requires
- php: >=7.1
- illuminate/console: 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6 || ^7 || ^8
- illuminate/contracts: 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6 || ^7 || ^8
- illuminate/support: 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6 || ^7 || ^8
Requires (Dev)
- laravel/lumen-framework: 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6 || ^7
- localheinz/composer-normalize: ^1.3
This package is auto-updated.
Last update: 2024-09-29 03:25:57 UTC
README
轻松将 Altair GraphQL 客户端 集成到您的 Laravel 项目中。
请注意:这不是 GraphQL 服务器实现,仅用于测试和探索您架构的 UI。对于服务器组件,我们推荐 nuwave/lighthouse。
免责声明:这是从 laravel-graphql-playground(由 @spawnia 的 mll-lab)移植到 Altair GraphQL 客户端 的版本。
安装
composer require xkojimedia/laravel-altair-graphql
如果您使用的是 Laravel < 5.4,请将服务提供者添加到您的 config/app.php
'providers' => [ // Other providers... XKojiMedia\AltairGraphQL\AltairGraphQLServiceProvider::class, ]
如果您使用的是 Lumen,请在 bootstrap/app.php
中注册服务提供者
$app->register(XKojiMedia\AltairGraphQL\AltairGraphQLServiceProvider::class);
配置
默认情况下,Altair 可在 /altair
访问,并假定 /graphql
上有一个运行的 GraphQL 端点。
要更改默认值,使用以下命令发布配置
php artisan vendor:publish --provider="XKojiMedia\AltairGraphQL\AltairGraphQLServiceProvider" --tag=config
您将在 config/altair-graphql.php
找到配置文件。
如果您使用的是 Lumen,请手动将其复制到该位置并在 boostrap/app.php
中加载配置
$app->configure('altair-graphql');
自定义
要进一步自定义 Altair,发布视图
php artisan vendor:publish --provider="XKojiMedia\AltairGraphQL\AltairGraphQLServiceProvider" --tag=views
您可以使用它进行各种自定义。
更改 Altair 实例的设置
请参阅 https://github.com/imolorhe/altair#configuration-options 了解允许的配置选项,例如
<script> var altairOptions = { endpointURL: "{{url(config('altair-graphql.endpoint'))}}" }; window.addEventListener("load", function() { AltairGraphQL.init(altairOptions); }); </script>
配置会话身份验证
如果您通过会话和 CSRF 使用 GraphQL,请在主体中添加以下内容
<script>window.__CSRF_TOKEN__ = "{{ csrf_token() }}";</script>
按如下方式修改 Altair 配置
AltairGraphQL.init({ endpointURL: "{{url(config('altair-graphql.endpoint'))}}", + initialPreRequestScript: "altair.helpers.setEnvironment('csrf_token', window.__CSRF_TOKEN__);", + initialHeaders: { + 'X-CSRF-TOKEN': '{{ csrf_token }}' + } })
本地资源
如果您想从自己的服务器提供资源,可以使用以下命令下载
php artisan altair-graphql:download-assets
这将必要的 CSS、JS 和 Favicon 放入您的 public
目录。如果已下载资源,将使用这些资源而不是 CDN 上的在线版本。
安全
如果您不希望在生产中启用 Altair GraphQL,可以在配置文件中禁用它。最简单的方法是设置环境变量 ALTAIR_GRAPHQL_ENABLED=false
如果您想添加自定义中间件来保护 Altair GraphQL 的路由,可以在配置文件中添加它。