Perpustakaan ini memungkinkan mengintegrasikan proyek Lighthouse GraphQL Anda dengan Apollo Studio, mengirim statistik penelusuran dan memungkinkan Anda untuk mengirim skema Anda ke Apollo untuk melanggar pemberitahuan perubahan.
Perpustakaan ini diuji dengan Mercusuar 6.
Untuk Mercusuar 4.x, gunakan versi 1.x
dari perpustakaan ini. Untuk Lighthouse 5.x, gunakan versi 2.x
perpustakaan ini.
Pertama, instal paket komposer:
composer require bright-alley/lighthouse-apollo
Selanjutnya, publikasikan file konfigurasi dan sesuaikan seperti yang diinginkan:
php artisan vendor:publish --provider="BrightAlleyLighthouseApolloServiceProvider"
Penyedia layanan untuk paket ini secara otomatis terdaftar. Jika Anda telah menonaktifkan penemuan otomatis penyedia layanan, pastikan untuk menambahkan BrightAlleyLighthouseApolloServiceProvider
ke penyedia layanan Anda. TracingserviceProvider Lighthouse secara otomatis terdaftar. Secara default, hasil penelusuran dilucuti dari respons GraphQL yang sebenarnya ketika tidak dalam mode debug.
Saat menggunakan REDIS atau database mengirim mode penelusuran ( sangat disarankan untuk penggunaan produksi ), pastikan untuk menambahkan perintah lighthouse-apollo:publish-tracing
Artisan ke jadwal kernel konsol Anda, sehingga sering berjalan untuk mengirim hasil jejak antrian ke Apollo. Anda dapat menyesuaikan jadwal untuk berjalan lebih atau lebih jarang berdasarkan volume lalu lintas Anda.
public function schedule ( Illuminate Console Scheduling Schedule $ schedule )
{
$ schedule -> command ( ' lighthouse-apollo:submit-tracing ' )
-> everyMinute ();
}
Anda dapat mengumpulkan informasi tentang klien mana yang memanggil API GraphQL Anda. Jika Anda memiliki kendali atas klien, tambahkan header x-apollo-client-name
dan x-apollo-client-version
ke permintaan GraphQL Anda, dan mereka akan dikumpulkan dan dikirim ke Apollo Studio.
Jika Anda memerlukan kontrol lebih besar atas penelusuran klien di sisi server, Anda dapat membuat logika khusus Anda sendiri dengan mengimplementasikan antarmuka BrightAlleyLighthouseApolloContractsClientInformationExtractor
, dan mengikat implementasi Anda sendiri ke wadah aplikasi di penyedia layanan Anda, seperti demikian:
$ this -> app -> bind ( ClientInformationExtractor ::class, MyCustomClientInformationExtractor ::class);
Protobuf digunakan untuk mengirim jejak ke Apollo Studio. Untuk menghasilkan rintisan baru, gunakan perintah berikut:
protoc -I resources --php_out=generated/ resources/*.proto