퍼시스티드 쿼리
퍼시스티드 쿼리저수준 Persisted Query 편집

저수준 Persisted Query 편집

Included in the “Power Extensions” bundle

Persisted Query를 편집할 때 일반적으로 숨겨진 디렉티브(GraphQL 서버에 기능을 주입하는 것)를 표시합니다.

설명

GraphQL에서 디렉티브는 필드의 결과를 수정할 수 있는 함수입니다. 예를 들어, @strUpperCase 디렉티브는 필드의 값을 대문자 형식으로 변환합니다.

디렉티브에는 두 가지 유형이 있습니다. 스키마에 적용되어 모든 쿼리에서 항상 실행되는 것과, 클라이언트 측에서 사용자 또는 애플리케이션에 의해 쿼리에 적용되는 것입니다.

Gato GraphQL에서는 쿼리를 처리할 때 관여하는 많은 기능이 스키마에 적용된 디렉티브를 통해 실행됩니다.

예를 들어, Cache Control은 스키마에 @cacheControl 디렉티브를 적용함으로써 동작합니다. 이 설정은 기본적으로 숨겨져 있으며, 플러그인이 사용자 인터페이스를 통해 처리합니다.

캐시 컨트롤 정책 정의

마찬가지로, 다음 디렉티브는 필드에 대한 액세스 제어를 제공합니다(그리고 유사한 디렉티브가 디렉티브에 대한 액세스 제어를 제공합니다).

  • @disableAccess
  • @validateIsUserLoggedIn
  • @validateIsUserNotLoggedIn
  • @validateDoesLoggedInUserHaveAnyRole.
  • @validateDoesLoggedInUserHaveAnyCapability
  • @validateDoesVisitorComeFromAnyAllowedIP
  • @validateDoesVisitorNotComeFromAnyDeniedIP

Low-Level Persisted Query Editing 확장 기능은 Persisted Query를 편집할 때 스키마에 적용되는 모든 디렉티브를 GraphiQL 편집기에서 사용할 수 있게 합니다. 이를 통해 사용자 인터페이스를 사용하지 않고도 스키마 타입 디렉티브를 Persisted Query 내에 직접 추가할 수 있습니다.

Persisted Queries 편집기에서 사용 가능한 스키마 타입 디렉티브

예를 들어, Cache Control 정의는 Persisted Query 내에서 직접 수행할 수 있습니다. 필드에 maxAge 인수를 가진 @cacheControl 디렉티브를 설정하거나, 해당 @validate... 디렉티브를 필드에 직접 추가하여 액세스 제어를 정의할 수 있습니다.

스키마 타입 디렉티브