Creando un API Lumen Laravel & GraphQL

Instalar Lumen

Lo primero que tenemos que hacer es instalar globalmente lumen

sudo composer global require "laravel/lumen-installer"

Una vez instalado ya podemos utilizar el comando lumen para activar nuestra API.

Crear nuestro API con Lumen

En este caso crearemos un projecto ljp-api.

lumen new ljp-api

Instalamos GraphQL para Lumen

composer require nuwave/lighthouse
cp .env.example .env

Más info: Github Lumen Lighthouse GraphQL

Configuramos Lumen Lighthouse GraphQL

1. Activamos Lighthouse. Y opcionalmente Facade y Eloquent.

$app->configure('lighthouse');
...
$app->register(Nuwave\Lighthouse\Providers\LighthouseServiceProvider::class);

2. Actualizamos AppServiceProvider

        /**
         * Fix BUG (1/1) BindingResolutionException.
         * Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable.
         */
        $this->app->singleton('Illuminate\Contracts\Routing\ResponseFactory', function ($app) {
            return new \Illuminate\Routing\ResponseFactory(
                $app['Illuminate\Contracts\View\Factory'],
                $app['Illuminate\Routing\Redirector']
            );
        });

3. Actualizamos Bootstrap App

/**
 * Fix BUG (1/1) ReflectionException.
 * Class path.storage does not exist
 */
$app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config');
$app->instance('path.storage', app()->basePath() . DIRECTORY_SEPARATOR . 'storage');

 

Creamos nuestro primer Schema

cd routes
mkdir graphql
touch schema.graphql

Y creamos nuestro primer resolver

php artisan lighthouse:query Hello

Probando que funciona

Instalamos GraphQL Playground. Un IDE para realizar la consultas a nuestro GraphQL API

Más info: Github GraphQL Playground

Te ha gustado?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Por Louis

Amante de las Nuevas Tecnologías, Marketing Digital y Social Media.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *