Эта библиотека позволяет интегрировать ваш проект GraphQL Lighthouse с Apollo Studio, отправляя статистику отслеживания и позволяя вам отправлять свою схему в Apollo для уведомлений о нарушениях изменений.
Эта библиотека проверяется с маяком 6.
Для маяка 4.x используйте версию 1.x
этой библиотеки. Для Lighthouse 5.x используйте версию 2.x
этой библиотеки.
Сначала установите пакет композитора:
composer require bright-alley/lighthouse-apollo
Затем опубликуйте файл конфигурации и настройте его по желанию:
php artisan vendor:publish --provider="BrightAlleyLighthouseApolloServiceProvider"
Поставщик услуг для этого пакета автоматически зарегистрирован. Если вы отключили автоматическое обнаружение поставщиков услуг, обязательно добавьте BrightAlleyLighthouseApolloServiceProvider
к вашим поставщикам услуг. TracingServiceProvider от Lighthouse автоматически зарегистрирован. По умолчанию результаты отслеживания исключены из фактического ответа GraphQL, когда не в режиме отладки.
При использовании режима трассировки REDIS или базы данных ( настоятельно рекомендуется для использования производства ), обязательно добавьте команду lighthouse-apollo:publish-tracing
ремесленной команды в графике вашего консольного ядра, поэтому она часто работает, чтобы отправлять результаты следов очереди в Аполлон. Вы можете настроить график, чтобы работать более или реже в зависимости от объема трафика.
public function schedule ( Illuminate Console Scheduling Schedule $ schedule )
{
$ schedule -> command ( ' lighthouse-apollo:submit-tracing ' )
-> everyMinute ();
}
Вы можете собрать информацию о том, какие клиенты называют ваш API GraphQL. Если у вас есть контроль над клиентами, добавьте заголовки x-apollo-client-name
и x-apollo-client-version
в ваши запросы GraphQL, и они будут собраны и отправлены в Apollo Studio.
Если вам нужно больше контроля над трассировкой клиента на стороне сервера, вы можете создать свою собственную собственную логику, внедрив интерфейс BrightAlleyLighthouseApolloContractsClientInformationExtractor
и привязав свою собственную реализацию с контейнером приложения в вашем поставщике услуг, например, так:
$ this -> app -> bind ( ClientInformationExtractor ::class, MyCustomClientInformationExtractor ::class);
Protobuf используется для отправки трассов в Apollo Studio. Чтобы сгенерировать новые заглушки, используйте следующую команду:
protoc -I resources --php_out=generated/ resources/*.proto