개념, 아이디어, 전략API 계층 구조를 위한 전략
API 계층 구조를 위한 전략
API 엔드포인트의 계층 구조를 설정하기 위해 다양한 아이디어를 적용할 수 있습니다.
쿼리 우선, 스키마 오버라이드
부모에 공통 GraphQL 쿼리를 정의하고, 각 애플리케이션에 맞게 확장할 수 있습니다.
예를 들어, 부모 퍼시스트 쿼리 /graphql-query/posts/는 다음과 같은 GraphQL 쿼리를 정의합니다.
query GetPosts {
posts {
id
title
url
}
}그리고 웹사이트와 모바일 앱을 위한 자식 퍼시스트 쿼리는 해당 스키마 설정을 지정합니다.
/graphql-query/posts/website/=> 스키마 설정"Website"사용/graphql-query/posts/mobile-app/=> 스키마 설정"Mobile app"사용
스키마 우선, 쿼리 오버라이드
또는 부모 레벨에서 스키마 설정을 선언하고, 모든 자식이 이를 상속받아 GraphQL 쿼리만 구현할 수도 있습니다.
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
엔드포인트 번역
변수를 통해 언어 코드를 제공함으로써 엔드포인트의 콘텐츠를 번역합니다. 이 변수는 자식 엔드포인트에서 오버라이드할 수 있습니다.
예를 들어, 다음과 같은 GraphQL 쿼리를 사용하는 퍼시스트 쿼리 /graphql-query/posts/를 생성할 수 있습니다.
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}이 엔드포인트를 직접 실행할 필요가 없으므로 비활성화해 둘 수 있습니다.
그런 다음 GraphQL 변수를 오버라이드하는 자식 퍼시스트 쿼리 /graphql-query/posts/french/를 생성합니다.
{
"lang": "fr"
}