이 라이브러리를 사용하면 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가 자동으로 등록됩니다. 기본적으로 트레이싱 결과는 디버그 모드에 있지 않을 때 실제 그래프 QL 응답에서 제거됩니다.
Redis 또는 Database Send 추적 모드 ( 생산 사용에 적극 권장 )를 사용하는 경우 lighthouse-apollo:publish-tracing
Artisan 명령을 추가하여 Apollo에 대기열 추적 결과를 보내는 것이 자주 실행됩니다. 트래픽 양에 따라 일정을 다소 실행하도록 일정을 조정할 수 있습니다.
public function schedule ( Illuminate Console Scheduling Schedule $ schedule )
{
$ schedule -> command ( ' lighthouse-apollo:submit-tracing ' )
-> everyMinute ();
}
어떤 클라이언트가 GraphQL API에 전화하는지에 대한 정보를 수집 할 수 있습니다. 클라이언트를 제어 할 수있는 경우 x-apollo-client-name
및 x-apollo-client-version
헤더를 GraphQL 요청에 추가하면 Apollo Studio로 수집되어 보내집니다.
서버 측에서 클라이언트 추적을 더 많이 제어 해야하는 경우 BrightAlleyLighthouseApolloContractsClientInformationExtractor
Interface를 구현하고 서비스 제공 업체의 앱 컨테이너에 자신의 구현을 바인딩하여 고유 한 사용자 정의 논리를 만들 수 있습니다.
$ this -> app -> bind ( ClientInformationExtractor ::class, MyCustomClientInformationExtractor ::class);
Protobuf는 아폴로 스튜디오에 흔적을 보내는 데 사용됩니다. 새 스터브를 생성하려면 다음 명령을 사용하십시오.
protoc -I resources --php_out=generated/ resources/*.proto