Как я могу зарегистрировать graphql для всех модулей отдельно, как мы регистрируем маршруты в провайдере? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть Laravel проект с подмодулем. Мне нужно создать файл graphql в каждом модуле для отдельных маршрутов.

Как я могу зарегистрировать graphql для всех модулей отдельно, как мы регистрируем маршруты в провайдере? Как обрабатывать файл graphql в нескольких модулях?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Просто по-другому ... У меня также есть мой код, разделенный по модулям, у меня есть что-то вроде этого в моем ServiceProvider:


public function __construct(Application $app)
    {
        parent::__construct($app);
        $reflection = new ReflectionClass($this);
        $this->folder = dirname($reflection->getFileName());
    }

public function bootGraphql()
    {
        $graphql = $this->folder.'/Graphql/module_schema.graphql';
        if (file_exists($graphql)) {
            Event::listen(BuildSchemaString::class, function () use ($graphql) {
                return (new SchemaStitcher($graphql))->getSchemaString();
            });
        }
    }

Затем, в вашем module_schema.graphql вы также можете использовать #import */*.graphql. Таким образом, каждый файл .graphql внутри ваших папок Graphql загружается.

0 голосов
/ 10 февраля 2020

Вы можете сделать это, используя include. Например, в проекте, над которым я работаю, файлы graphql разделены по сущностям. Мы импортируем их следующим образом:

#import ../Entities/*/*.graphqls

Обратите внимание, что импорт выполняется относительно местоположения файла схемы.

Для получения дополнительной информации см. документы

...