Diese Bibliothek ermöglicht die Integration Ihres Lighthouse GraphQL -Projekts in Apollo Studio, das Senden von Verfolgungsstatistiken und das Senden Ihres Schemas an Apollo, um Änderungenbenachrichtigungen zu brechen.
Diese Bibliothek wird mit Leuchtturm 6 getestet.
Verwenden Sie für Lighthouse 4.x Version 1.x
dieser Bibliothek. Verwenden Sie für Lighthouse 5.x Version 2.x
dieser Bibliothek.
Installieren Sie zunächst das Composer -Paket:
composer require bright-alley/lighthouse-apollo
Veröffentlichen Sie als Nächstes die Konfigurationsdatei und passen Sie sie wie gewünscht an:
php artisan vendor:publish --provider="BrightAlleyLighthouseApolloServiceProvider"
Der Dienstanbieter für dieses Paket ist automatisch registriert. Wenn Sie die automatische Entdeckung von Dienstleistern behindert haben, addieren Sie Ihren Dienstleister BrightAlleyLighthouseApolloServiceProvider
. Der TracingServiceProvider von Lighthouse ist automatisch registriert. Standardmäßig werden die Nachverfolgungsergebnisse aus der tatsächlichen GraphQL -Antwort abgezogen, wenn sie nicht im Debug -Modus sind.
Wenn Sie den Redis- oder Datenbank-Send-Tracing-Modus verwenden ( für die Produktionsnutzung sehr empfohlen ), stellen Sie sicher, dass Sie den Befehl lighthouse-apollo:publish-tracing
Artisan-Befehl zum Zeitplan Ihres Konsolenkernels veröffentlichen. Daher wird häufig ausgeführt, um die Warteschlange-Trace-Ergebnisse an Apollo zu senden. Sie können den Zeitplan so anpassen, dass sie mehr oder weniger häufig auf Ihrem Verkehrsvolumen ausführen.
public function schedule ( Illuminate Console Scheduling Schedule $ schedule )
{
$ schedule -> command ( ' lighthouse-apollo:submit-tracing ' )
-> everyMinute ();
}
Sie können Informationen darüber sammeln, welche Kunden Ihre GraphQL -API aufrufen. Wenn Sie die Kontrolle über die Clients haben, fügen Sie die x-apollo-client-name
und x-apollo-client-version
Header zu Ihren GraphQL-Anfragen hinzu, und sie werden gesammelt und an Apollo Studio gesendet.
Wenn Sie mehr Kontrolle über die Kundenverfolgung auf der Serverseite benötigen, können Sie Ihre eigene benutzerdefinierte Logik erstellen, indem Sie die BrightAlleyLighthouseApolloContractsClientInformationExtractor
-Schnittstelle implementieren und Ihre eigene Implementierung an den App -Container in Ihrem Serviceanbieter verbinden, wie dies:
$ this -> app -> bind ( ClientInformationExtractor ::class, MyCustomClientInformationExtractor ::class);
Protobuf wird zum Senden von Spuren an Apollo Studio verwendet. Verwenden Sie den folgenden Befehl, um neue Stubs zu generieren:
protoc -I resources --php_out=generated/ resources/*.proto