GraphQLサーバーを作成することになり、Lighthoseを利用したので備忘録と簡単な解説。
今回は導入編
Lighthouse
公式:https://lighthouse-php.com/
LaravelでGraphQLを利用するためのライブラリ。
導入
- インストール
composer require nuwave/lighthouse
- デフォルトスキーマの公開
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=schema
作成されるスキーマファイル
graphql/schema.graphql
"A date string with format `Y-m-d`, e.g. `2011-05-23`."
scalar Date @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\Date")
"A datetime string with format `Y-m-d H:i:s`, e.g. `2018-05-23 13:43:32`."
scalar DateTime @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTime")
"A datetime and timezone string in ISO 8601 format `Y-m-dTH:i:sO`, e.g. `2020-04-20T13:53:12+02:00`."
scalar DateTimeTz @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTimeTz")
type Query {
users: [User!]! @paginate(defaultCount: 10)
user(id: ID @eq): User @find
}
type User {
id: ID!
name: String!
email: String!
created_at: DateTime!
updated_at: DateTime!
}
- configファイルの作成
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=config
上記コマンドで config/lighthouse.php
にファイルが作成されます。
エンドポイントの変更とか諸々の設定が可能です。
- DevTool GraphQL-PlayGround
GraphQLスキーマの確認、クエリを実行できる便利なTool
ちなみにPostman等クライアントツールもGraphQLに対応しています。
composer require --dev mll-lab/laravel-graphql-playground
dockerやlaravelのビルドインサーバーを立ち上げてアプリURL/graphql-playground
にアクセスすることで利用できます。
公式見れば書いてあるすごく薄い内容ですが導入は終わり
次回はlighthouseのディレクティブをまとめたいって思ってます。