4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GraphQL, lighthouse】メモ,エラー対処など ⑴

Last updated at Posted at 2019-10-28

概要

lighthouseを使っていて出てきたエラー対処などの備忘録です。

環境

laravel 6.0.4
lighthouse 4.5

複数ファイルに分けてGraphQLを記述する

  • ファイルの指定方法
* ディレクトリ構造
graphql/
|-- schema.graphql
|-- user.graphql
graphql/schema.graphql
#import user.graphql
  • 複数ファイルの指定方法
* ディレクトリ構造
graphql/
  |-- schema.graphql
  |-- user/
    |-- 1.graphql
    |-- 2.graphql
graphql/schema.graphql
#import user/*.graphql

ドキュメントで確認した時はコメントかと思って見流していました。
ワイルドカードを使用できるのは便利ですが不思議な記述ですね。

使用するモデルの設定

app/lighthouse.phpのnamespacesで変更出来ます。

app/lighthouse.php
    'namespaces' => [
        'models' => ['App', 'App\\Models'],
        'queries' => 'App\\GraphQL\\Queries',
        'mutations' => 'App\\GraphQL\\Mutations',
        'subscriptions' => 'App\\GraphQL\\Subscriptions',
        'interfaces' => 'App\\GraphQL\\Interfaces',
        'unions' => 'App\\GraphQL\\Unions',
        'scalars' => 'App\\GraphQL\\Scalars',
        'directives' => ['App\\GraphQL\\Directives'],
    ],

スキーマキャッシュについて

$ php artisan lighthouse:clear-cache

これでキャッシュクリア出来ますが、頻繁に打つことになってしまうのでローカルの開発ではLIGHTHOUSE_CACHE_ENABLEをfalseにしてキャッシュを無効にするほうが良いです。

app/lighthouse.php
    'cache' => [
        'enable' => env('LIGHTHOUSE_CACHE_ENABLE', true),
        'key' => env('LIGHTHOUSE_CACHE_KEY', 'lighthouse-schema'),
        'ttl' => env('LIGHTHOUSE_CACHE_TTL', null),
    ],
.env
LIGHTHOUSE_CACHE_ENABLE=false

graphql-playgroundがブラウザ上で立ち上がらなくなった時

localStorageの容量を食いつぶすクエリを実行すると、その後ブラウザ上で立ち上がらなくなることがあるようです。
デベロッパーツール等からlocalStorageをクリアすると解決しますが、クエリを実行したまま終了していてクリアしても立ち上げる度に実行されてしまう場合は以下の方法が参考になるようです。
参考: https://gfx.hatenablog.com/entry/2017/09/27/002334

特定のブラウザで「Server cannot be reached」が表示され続ける

そのままでも動作に問題は無いようですが、こちらもlocalStorageのクリアで解決します。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?