Habilitar CORS en GraphQL y Zend Expressive 3

Encontré este artículo que me dió la pista de como hacerlo, pero es de 2017, con lo cual me encontré con múltiples errores. Aquí os dejo la guía detallada de cómo habilitar CORS para las últimas versiones de GraphQL y demás librerias implicadas.

Instalamos las dependencias

composer require tuupola/cors-middleware
composer require zendframework/zend-problem-details

Creamos la factoría dónde pondremos nuestros valores por defecto y la gestión de errores en JSON (disponible en github)

Editamos el archivo de dependencias

Tuupola\Middleware\CorsMiddleware::class => App\Factory\CorsMiddlewareFactory::class

Y por último habilitamos el middleware en pipeline.php
use Tuupola\Middleware\CorsMiddleware;

...

// $app->pipe(ImplicitOptionsMiddleware::class);
$app->pipe(CorsMiddleware::class);

Comentarios