LoginSignup
31
22

More than 5 years have passed since last update.

Laravel 5.7 + GraphQL(Install編)

Last updated at Posted at 2018-10-22

:x:追記: ご注意:x:

folkloreinc/laravel-graphql こちらの記事で採用しているライブラリが 2019/2/10 にアーカイブされてしまいました😢😢😢
今後ライブラリ導入を検討される方は nuwave/lighthouse を推奨します。

=========================================================

今回はLaravel5.7にGraphQLをインストールします。

シリーズ記事

Laravel5.7インストール

Laravelインストーラを用いてLaravelをインストールしました。
※インストーラ版はバージョン指定はできませんが最新版がインストールできます。

$ laravel new practice-laravel-graphql
$ cd practice-laravel-graphql
$ php artisan --version
Laravel Framework 5.7.9

執筆時の最新の5.7.9を使用しています。
.env に用意したデータベースの情報を適宜設定します。

git commit

$ git init
$ git add .
$ git commit -m "laravel install"

GraphQLのインストール

$ composer require folklore/graphql:dev-develop

2018/10/22時点では、Laravel5.7未対応ですがdevelopブランチの方で修正コミットされてます。
masterにマージされるまではdevelopブランチを使用したいと思います。

$ php artisan vendor:publish --provider="Folklore\GraphQL\ServiceProvider"
Copied File [/vendor/folklore/graphql/src/config/config.php] To [/config/graphql.php]
Copied Directory [/vendor/folklore/graphql/src/resources/views] To [/resources/views/vendor/graphql]
Publishing complete.
  • /config/graphql.php
  • /resources/views/vendor/graphql/graphiql.php

上記の2つのファイルが配置される。

追加されるGraphQLコマンド

$ php artisan list | grep graphql
  make:graphql:enum       Create a new GraphQL enum class
  make:graphql:field      Create a new GraphQL field class
  make:graphql:interface  Create a new GraphQL interface class
  make:graphql:mutation   Create a new GraphQL mutation class
  make:graphql:query      Create a new GraphQL query class
  make:graphql:scalar     Create a new GraphQL scalar class
  make:graphql:type       Create a new GraphQL type class

ひな型ファイルを作ってくれるコマンドが7種用意されてます。

追加されるGraphQLルーティング

$ php artisan route:list
+--------+----------+----------------------------+--------------------+---------------------------------------------+--------------+
| Domain | Method   | URI                        | Name               | Action                                      | Middleware   |
+--------+----------+----------------------------+--------------------+---------------------------------------------+--------------+
|        | GET|HEAD | /                          |                    | Closure                                     | web          |
|        | GET|HEAD | api/user                   |                    | Closure                                     | api,auth:api |
|        | GET|HEAD | graphiql/{graphql_schema?} | graphql.graphiql   | Folklore\GraphQL\GraphQLController@graphiql |              |
|        | GET|HEAD | graphql/{graphql_schema?}  | graphql.query      | Folklore\GraphQL\GraphQLController@query    |              |
|        | POST     | graphql/{graphql_schema?}  | graphql.query.post | Folklore\GraphQL\GraphQLController@query    |              |
+--------+----------+----------------------------+--------------------+---------------------------------------------+--------------+

GraphQLのルーティングが3つ追加されています。
graphiql のルートはGraphQLをブラウザで実行できます。

graphiql

$ php artisan serve

スクリーンショット 2018-10-13 18.32.18.png

クエリ実行

スクリーンショット 2018-10-13 22.46.12.png

こんな感じでクエリの実行とjsonデータの取得が行えます。

31
22
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
31
22