이 기사에서는 여러 동물 군 인스턴스에 걸쳐 스키마 스티치를 보여 주어 이질적인 데이터 소스에서 통합 된 GraphQL API를 만듭니다. 우리는 또한 동물 군을 다른 GraphQL 서비스와 결합 할 것입니다.
스키마 스티치 이해
스키마 스티치는 여러 기본 그래프 QL API에서 단일 그래프 QL API를 구축하는 기술입니다.
스키마 스티칭을 사용하는 이유는 무엇입니까?
대규모 응용 프로그램은 종종 모듈성을 위해 마이크로 서비스를 사용합니다. 그러나 클라이언트 응용 프로그램에는 종종 여러 소스의 데이터가 필요합니다. Unified GraphQL API는 깨끗한 인터페이스를 제공하지만 모 놀리 식 서버를 구축하는 것은 문제가 될 수 있습니다. 데이터베이스 당 FAUNA의 기본 GraphQL은 이상적이지만 여러 데이터베이스는 여러 인스턴스에 연결해야하므로 단단한 커플 링이 발생합니다. 스키마 스티칭은 여러 개의 그래프 QL 서비스를 단일 통합 스키마로 결합하여이를 해결합니다. 이 기사는 다음과 같습니다.
- 여러 동물 인스턴스를 단일 그래프 QL 서비스에 통합합니다.
- 동물 군과 다른 GraphQL API 및 데이터 소스를 결합합니다.
- AWS Lambda를 사용하여 서버리스 그래프 QL 게이트웨이 생성.
여러 동물 군 사례를 통합합니다
여러 동물 데이터베이스 인스턴스 (예 : Product
, Inventory
, Review
)를 단일 그래프 QL 서비스로 결합하겠습니다. 각 데이터베이스에는 자체 GraphQL API (하위 그래프)가 있습니다. 우리의 목표는 클라이언트 애플리케이션을위한 통합 그래프로 모든 소스에서 데이터를 쿼리합니다.
이 통합 그래프는 우리의 게이트웨이 서비스가 될 것입니다. Node.js를 사용 하여이 제품을 작성하겠습니다.
-
프로젝트 설정 : Node.js 프로젝트 생성 :
mkdir my-gateway CD my-gateway npm init---
-
종속성 설치 :
NPM I Express Express-GraphQL GraphQL @GraphQL-Tools/Schema @GraphQL-Tools/Stitch @GraphQL-Tools/Wrap Cross-Fetch--save
-
BASIC GraphQL Server (Gateway.js) : Simple Express GraphQL 서버로 시작합니다.
// gateway.js (초기 버전) // ... (Express Server 설정) ...
(이 초기 코드는 원래 예제와 유사한 베어 본 서버이지만 Brevity는 스티칭 측면에 집중하기 위해 생략되었습니다.)
동물 데이터베이스 설정 : 3 개의 동물 데이터베이스 (
Product
,Inventory
,Review
)를 만들고 관리 키를 생성합니다. 각 데이터베이스에 대한 그래프 QL 스키마를 정의하십시오 (원래 예제에 표시된대로).-
Gateway Service Enhancement (Gateway.js) :
@graphql-tools/stitch
사용하여 스키마 스티치 구현. 이 섹션에는 원본에 설명 된대로makeRemoteExecutor
및makeGatewaySchema
기능이 포함되지만 명확성이 향상되고 더 나은 가독성을 위해 잠재적으로 리팩토링됩니다. 주요 개선은 다음과 같습니다.- 각 함수의 목적을 설명하는 명확한 의견.
- API 호출에 대한 오류 처리.
- 하드 코딩 대신 환경 변수를 통한 API 키 구성.
타사 API 스티칭 : 동일한
makeRemoteExecutor
및stitchSchemas
접근법을 사용하여 타사 GraphQL API (예 : SpaceX API)를 포함하도록 게이트웨이를 확장합니다.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

최근에 제품 이미지의 색상을 동적으로 업데이트하는 솔루션을 찾았습니다. 따라서 제품 중 하나만 사용하여 다른 방식으로 색칠 할 수 있습니다.

이번 주에 라운드 업, Lighthouse는 타사 스크립트에 빛을 비추고 불안한 자원이 안전한 사이트에서 차단되고 많은 국가 연결 속도가 차단됩니다.

사이트에서 방문자 및 사용 데이터를 추적하는 데 도움이되는 분석 플랫폼이 많이 있습니다. 아마도 널리 사용되는 Google 웹 로그 분석

문서 헤드는 웹 사이트에서 가장 화려한 부분이 아닐 수도 있지만 웹 사이트의 성공에 중요합니다.

Super ()?를 호출하는 JavaScript를 볼 때 어떤 일이 발생 하는가. 아동 클래스에서는 Super ()를 사용하여 부모의 생성자와 Super를 호출합니다. 그것의 접근

JavaScript에는 사용자 상호 작용을위한 특수 UI를 표시하는 다양한 내장 팝업 API가 있습니다. 뛰어나게:

나는 다른 날에 많은 회사들이 액세스 가능한 웹 사이트를 만드는 데 어려움을 겪고있는 이유에 대해 다른 프론트 엔드 사람들과 대화를 나누고있었습니다. 액세스 가능한 웹 사이트가 왜 그렇게 어려운가


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
