該庫允許將您的Lighthouse GraphQl項目與Apollo Studio集成,發送跟踪統計信息,並允許您將模式發送到Apollo,以打破更改通知。
該圖書館已通過燈塔6進行了測試。
對於Lighthouse 4.X,請使用此庫的1.x
版本。對於Lighthouse 5.X,請使用此庫的2.x
版本。
首先,安裝作曲家包:
composer require bright-alley/lighthouse-apollo
接下來,發布配置文件並根據需要進行調整:
php artisan vendor:publish --provider="BrightAlleyLighthouseApolloServiceProvider"
此軟件包的服務提供商將自動註冊。如果您已禁用了服務提供商的自動發現,請確保將BrightAlleyLighthouseApolloServiceProvider
添加到您的服務提供商中。 Lighthouse的TracingServiceProvider自動註冊。默認情況下,當不處於調試模式時,跟踪結果將從實際的GraphQL響應中刪除。
使用REDIS或數據庫發送跟踪模式(強烈建議用於生產使用)時,請確保將lighthouse-apollo:publish-tracing
Artisan命令添加到您的控制台內核的時間表中,因此它經常運行以將排隊的跟踪結果發送到Apollo。您可以根據交通量調整時間表以或多或少地運行。
public function schedule ( Illuminate Console Scheduling Schedule $ schedule )
{
$ schedule -> command ( ' lighthouse-apollo:submit-tracing ' )
-> everyMinute ();
}
您可以收集有關哪些客戶調用GraphQL API的信息。如果您對客戶端有控制權,請在您的GraphQl請求中添加x-apollo-client-name
和x-apollo-client-version
version標頭,並將收集並發送到Apollo Studio。
如果您需要對服務器端上的客戶端跟踪的更多控制,則可以通過實現BrightAlleyLighthouseApolloContractsClientInformationExtractor
界面來創建自己的自定義邏輯,並將您自己的實現綁定到服務提供商中的App容器,例如:
$ this -> app -> bind ( ClientInformationExtractor ::class, MyCustomClientInformationExtractor ::class);
Protobuf用於將軌跡發送到阿波羅工作室。要生成新的存根,請使用以下命令:
protoc -I resources --php_out=generated/ resources/*.proto