> 웹 프론트엔드 > CSS 튜토리얼 > 여러 데이터 소스에서 단일 그래프 QL을 구현합니다

여러 데이터 소스에서 단일 그래프 QL을 구현합니다

Joseph Gordon-Levitt
풀어 주다: 2025-03-20 09:43:13
원래의
686명이 탐색했습니다.

여러 데이터 소스에서 단일 그래프 QL을 구현합니다

이 기사에서는 여러 동물 군 인스턴스에 걸쳐 스키마 스티치를 보여 주어 이질적인 데이터 소스에서 통합 된 GraphQL API를 만듭니다. 우리는 또한 동물 군을 다른 GraphQL 서비스와 결합 할 것입니다.

스키마 스티치 이해

스키마 스티치는 여러 기본 그래프 QL API에서 단일 그래프 QL API를 구축하는 기술입니다.

스키마 스티칭을 사용하는 이유는 무엇입니까?

대규모 응용 프로그램은 종종 모듈성을 위해 마이크로 서비스를 사용합니다. 그러나 클라이언트 응용 프로그램에는 종종 여러 소스의 데이터가 필요합니다. Unified GraphQL API는 깨끗한 인터페이스를 제공하지만 모 놀리 식 서버를 구축하는 것은 문제가 될 수 있습니다. 데이터베이스 당 FAUNA의 기본 GraphQL은 이상적이지만 여러 데이터베이스는 여러 인스턴스에 연결해야하므로 단단한 커플 링이 발생합니다. 스키마 스티칭은 여러 개의 그래프 QL 서비스를 단일 통합 스키마로 결합하여이를 해결합니다. 이 기사는 다음과 같습니다.

  1. 여러 동물 인스턴스를 단일 그래프 QL 서비스에 통합합니다.
  2. 동물 군과 다른 GraphQL API 및 데이터 소스를 결합합니다.
  3. AWS Lambda를 사용하여 서버리스 그래프 QL 게이트웨이 생성.

여러 동물 군 사례를 통합합니다

여러 동물 데이터베이스 인스턴스 (예 : Product , Inventory , Review )를 단일 그래프 QL 서비스로 결합하겠습니다. 각 데이터베이스에는 자체 GraphQL API (하위 그래프)가 있습니다. 우리의 목표는 클라이언트 애플리케이션을위한 통합 그래프로 모든 소스에서 데이터를 쿼리합니다.

이 통합 그래프는 우리의 게이트웨이 서비스가 될 것입니다. Node.js를 사용 하여이 제품을 작성하겠습니다.

  1. 프로젝트 설정 : Node.js 프로젝트 생성 :

     mkdir my-gateway
    CD my-gateway
    npm init---
    로그인 후 복사
  2. 종속성 설치 :

     NPM I Express Express-GraphQL GraphQL @GraphQL-Tools/Schema @GraphQL-Tools/Stitch @GraphQL-Tools/Wrap Cross-Fetch--save
    로그인 후 복사
  3. BASIC GraphQL Server (Gateway.js) : Simple Express GraphQL 서버로 시작합니다.

     // gateway.js (초기 버전)
    // ... (Express Server 설정) ...
    로그인 후 복사

    (이 초기 코드는 원래 예제와 유사한 베어 본 서버이지만 Brevity는 스티칭 측면에 집중하기 위해 생략되었습니다.)

  4. 동물 데이터베이스 설정 : 3 개의 동물 데이터베이스 ( Product , Inventory , Review )를 만들고 관리 키를 생성합니다. 각 데이터베이스에 대한 그래프 QL 스키마를 정의하십시오 (원래 예제에 표시된대로).

  5. Gateway Service Enhancement (Gateway.js) : @graphql-tools/stitch 사용하여 스키마 스티치 구현. 이 섹션에는 원본에 설명 된대로 makeRemoteExecutormakeGatewaySchema 기능이 포함되지만 명확성이 향상되고 더 나은 가독성을 위해 잠재적으로 리팩토링됩니다. 주요 개선은 다음과 같습니다.

    • 각 함수의 목적을 설명하는 명확한 의견.
    • API 호출에 대한 오류 처리.
    • 하드 코딩 대신 환경 변수를 통한 API 키 구성.
  6. 타사 API 스티칭 : 동일한 makeRemoteExecutorstitchSchemas 접근법을 사용하여 타사 GraphQL API (예 : SpaceX API)를 포함하도록 게이트웨이를 확장합니다.

  7. AWS Lambda에 배포 : 서버리스 프레임 워크를 사용하여 게이트웨이를 AWS Lambda 기능에 배치합니다. 필요한 종속성 ( serverless , serverless-http , body-parser )을 설치하십시오. 원본에 표시된대로 serverless.yaml 파일을 만듭니다. 적절한 Lambda 기능 처리를 위해 serverless-http 와 통합하려면 gateway.js 수정하십시오. serverless deploy 사용하여 배포합니다.

결론

스키마 스티칭은 여러 데이터 소스에서 확장 가능하고 유지 관리 가능한 그래프 QL API를 구축하기위한 강력한 솔루션을 제공합니다. 이 기사는 동물 군과 AWS Lambda를 사용하지만 원칙은 다른 GraphQL 서비스 및 서버리스 플랫폼에 광범위하게 적용됩니다. Apollo Federation과 같은 대체 접근법은 유사한 기능을 제공합니다.

위 내용은 여러 데이터 소스에서 단일 그래프 QL을 구현합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿