# セットアップ
まずは、これから GraphQL アプリケーションを開発するために Laravel のセットアップを行いましょう。
# Laravel のセットアップ
Laravel の環境構築には、Laravel コマンドが便利です。
$ laravel new graphql-app
$ cd graphql-app
セットアップが完了したら、.env
ファイルを編集します。
DB_
から始まるセクションを以下のように書き換えて sqlite
が利用できるように設定しておきましょう。
DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=laravel
#DB_USERNAME=root
#DB_PASSWORD=
最後に touch コマンドで sqlite のファイルを作成すれば、準備は完了です。
$ touch database/database.sqlite
データベースにテストデータを格納します。
database/seeds/DatabaseSeeder.php
の run メソド内を以下のように記述し、
データベースのセットアップ時に、サンプルで 5件のユーザ情報を格納するよう指定します。
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
factory(\App\User::class,5)->create();
// $this->call(UserSeeder::class);
}
}
テストデータの記述が完了したら 下記のmigrate
コマンドを実行して、
テストデータを格納します。
$ php artisan migrate:fresh --seed
データベースの中身を確認すると users テーブルが作成され、 中に 5件のデータが格納されているはずです。
# Lighthouse のセットアップ
Laravel での GraphQL アプリケーション開発には、 lighthouse と呼ばれるライブラリが非常に便利です。
composer を利用して、Laravel へ lighthouse のインストールを行いましょう。
$ composer require nuwave/lighthouse
lighthouse のインストールが完了したら、 サンプルの GraphQL クエリをプロジェクトに展開します。
$ php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=schema
手元に graphql フォルダが作成されていれば、作業は完了です。
GraphQL アプリケーションの開発にあたって、 PhpStorm などの IDE を利用している人は、GraphQL 用のプラグインをインストールしておきましょう。
https://plugins.jetbrains.com/plugin/8097-js-graphql
ダウンロードしたZIP(またはJAR)ファイルをPhpStormのエディタ画面にドラッグアンドドロップすることで、 プラグインをインストールできます。
IDE 用のヘルパーファイルは以下のコマンドで展開できます。
(IDE ヘルパーの生成には、haydenpierce/class-finder
が必要なため、事前に composer でインストールしておく必要があります。)
$ composer require --dev haydenpierce/class-finder
$ php artisan lighthouse:ide-helper
上記のコマンドを実行すると、手元に schema-directives.graphql
が生成され、
PhpStorm 等の IDE で GraphQL を記述する際に、コード補完が効くようになります。
# GraphQL クライアントのインストール
ここまでで GraphQL 開発の準備は完了です!
以下のコマンドで開発サーバを立てて、実際に GraphQL を利用してみましょう。
$ php artisan serve
GraphQL を利用するには GraphQL のクライアントソフトを利用するのが便利です。 様々な GraphQL クライアントが公開されていますが、 ここでは、以下の altair を利用してみましょう。
https://altair.sirmuel.design/
altair をインストールして、以下のような形で、
- HTTP Methods を POST に
- URL には
http://localhost:8000/graphql
を入力 - 左端の クエリ欄に以下を記述
query{
user(id: 1){
name
}
}
上記の状態で Send Request
を実行して、
真ん中の欄に ユーザ情報が表示されれば、GraphQL の動作は万全です。
実際に アプリケーションの開発に着手していきましょう!
# Check!
次のステップに進む前に以下の内容をもう一度確認しておきましょう。
- データベースの users テーブルに 5件分のユーザ情報が入っていますか?
php artisan serve
で起動したサーバにブラウザからアクセスした際、Laravel の初期画面は表示されますか?- altair でクエリを発行して、データベースに保存されている ユーザ情報が 5件分 取得できますか?