xkojimedia/laravel-altair-graphql

轻松将 Altair GraphQL 客户端集成到您的 Laravel 项目中

v0.2.0 2021-01-28 16:54 UTC

This package is auto-updated.

Last update: 2024-09-29 03:25:57 UTC


README

轻松将 Altair GraphQL 客户端 集成到您的 Laravel 项目中。

GitHub license Packagist Packagist StyleCI

altair-graphql

请注意:这不是 GraphQL 服务器实现,仅用于测试和探索您架构的 UI。对于服务器组件,我们推荐 nuwave/lighthouse

免责声明:这是从 laravel-graphql-playground(由 @spawniamll-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 的路由,可以在配置文件中添加它。